使用 glide 从 viewpager 中的 imageview 获取位图
Get bitmap from imageview in viewpager with glide
我在图像视图中显示滑行。用户可以在单击按钮时保存图像。
Bitmap bitmap = ((BitmapDrawable)imageViewPreview.getDrawable()).getBitmap();
当我使用此代码时,它会保存整个屏幕图像(图像和黑色 space)。
imageViewPreview.setDrawingCacheEnabled(true);
imageViewPreview.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
imageViewPreview.layout(0, 0,
imageViewPreview.getMeasuredWidth(), imageViewPreview.getMeasuredHeight());
imageViewPreview.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(imageViewPreview.getDrawingCache());
imageViewPreview.setDrawingCacheEnabled(false);
何时使用它,有时它可以工作,但图像被裁剪成两半或图像像 "android:layout_alignParentTop="true".
您可以从 DrawingCache 获取 Bitmap
。在 ImageView
中设置图像后,您可以得到如下:
imageViewPreview.setDrawingCacheEnabled(true);
imageViewPreview.buildDrawingCache(true);
final Bitmap bmp = Bitmap.createBitmap(layout.getDrawingCache());
imageViewPreview.setDrawingCacheEnabled(false);
如果您需要全尺寸图像,那么我认为这不是正确的方法。更好的解决方案是从 Glide
获取它,如 Bitmap
。如果已经加载了完整图像,它将很快(从缓存中),否则它将从服务器加载完整图像,或者在没有互联网连接和滑动失败的情况下您仍然可以使用 Drawing cache
。
Glide.with(imageView.getContext())
.asBitmap()
.load("imageUrl")
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
// Use resource here
}
});
}
我在图像视图中显示滑行。用户可以在单击按钮时保存图像。
Bitmap bitmap = ((BitmapDrawable)imageViewPreview.getDrawable()).getBitmap();
当我使用此代码时,它会保存整个屏幕图像(图像和黑色 space)。
imageViewPreview.setDrawingCacheEnabled(true);
imageViewPreview.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
imageViewPreview.layout(0, 0,
imageViewPreview.getMeasuredWidth(), imageViewPreview.getMeasuredHeight());
imageViewPreview.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(imageViewPreview.getDrawingCache());
imageViewPreview.setDrawingCacheEnabled(false);
何时使用它,有时它可以工作,但图像被裁剪成两半或图像像 "android:layout_alignParentTop="true".
您可以从 DrawingCache 获取 Bitmap
。在 ImageView
中设置图像后,您可以得到如下:
imageViewPreview.setDrawingCacheEnabled(true);
imageViewPreview.buildDrawingCache(true);
final Bitmap bmp = Bitmap.createBitmap(layout.getDrawingCache());
imageViewPreview.setDrawingCacheEnabled(false);
如果您需要全尺寸图像,那么我认为这不是正确的方法。更好的解决方案是从 Glide
获取它,如 Bitmap
。如果已经加载了完整图像,它将很快(从缓存中),否则它将从服务器加载完整图像,或者在没有互联网连接和滑动失败的情况下您仍然可以使用 Drawing cache
。
Glide.with(imageView.getContext())
.asBitmap()
.load("imageUrl")
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
// Use resource here
}
});
}