如何将整个位图附加到ImageView?

时间:2012-03-16 17:22:27

标签: android bitmap imageview

我尝试使用ImageView.getDrawingCache();将Bitmap连接到ImageView但是我发现返回的Bitmap与我想从ImageView获取的不一样。它总是小于真实的图像。

我已经知道,方法getDrawingCache()不应该有视图,如果它比屏幕大,因为只绘制了视图的可见部分,并且缓存只保留绘制的内容。

我可以将整个位图附加到ImageView吗?

3 个答案:

答案 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();