我尝试使用ImageView.getDrawingCache();
将Bitmap连接到ImageView但是我发现返回的Bitmap与我想从ImageView获取的不一样。它总是小于真实的图像。
我已经知道,方法getDrawingCache()
不应该有视图,如果它比屏幕大,因为只绘制了视图的可见部分,并且缓存只保留绘制的内容。
我可以将整个位图附加到ImageView吗?
答案 0 :(得分:26)
如果您只想要Bitmap
中的ImageView
,则以下代码可能对您有用: -
Bitmap bm=((BitmapDrawable)imageView.getDrawable()).getBitmap();
我认为这就是你想要的。
答案 1 :(得分:14)
如果您的drawble并不总是BitmapDrawable的实例
注意:在执行此操作之前,应先设置ImageView。
Bitmap bitmap;
if (mImageView.getDrawable() instanceof BitmapDrawable) {
bitmap = ((BitmapDrawable) mImageView.getDrawable()).getBitmap();
} else {
Drawable d = mImageView.getDrawable();
bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
d.draw(canvas);
}
您的位图存储在位图中。
瞧!
答案 2 :(得分:0)
最简单的方法是在ImageView
中设置标记。
imageView.setImageBitmap(bitmap);
imageView.setTag(bitmap);
从中获取标记
imageView.getTag();