将Bitmap附加到带有背景的ImageView

时间:2016-08-03 05:49:45

标签: android bitmap android-imageview

我提到了this这个问题,建议通过这样做从ImageView获取一个Bitmap:

Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();

我面临的问题是,当我第一次设置ImageView的background,然后是src然后使用建议的解决方案时,我只将位图作为src图片。它没有包含background的{​​{1}}部分。我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

尝试使用 DrawingCache 获取位图。 尝试以下代码:

image.setDrawingCacheEnabled(true);

// this is the important code :)  
// Without it the view will have a dimension of 0,0 and the bitmap will be null          
image.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
image.layout(0, 0, image.getMeasuredWidth(), image.getMeasuredHeight()); 

image.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(image.getDrawingCache());
image.setDrawingCacheEnabled(false); // clear drawing cache

答案 1 :(得分:0)

您可以通过

获取图像层
Bitmap bitmap = ((BitmapDrawable)((LayerDrawable)imageViewPlayPause.getDrawable()).getDrawable(0)).getBitmap(‌​);

按索引0和1获取图像,并检查你得到的图像。