当我做 imageview.setImageBitmap(bitmap) 将与 imageview.setImageBitmap(object) 相同
是的,它是一样的(只要object
是 的另一个实例Bitmap
)
为了Bitmap
手动创建,存在一堆静态方法Bitmap.createBitmap()来创建位图(Bitmap 类)
例如,这是创建位图的最简单方法:
Bitmap bmp = Bitmap.createBitmap(100, 100, Config.ARGB_8888); //100*100 bitmap in ARGB color space
编辑:
如果您需要保持位图引用不变,则需要在单独的位图中解码流,然后将此位图的内容复制到原始 bitmapHolder 中。您可以通过在画布上绘图来做到这一点:
异步任务代码:
......
Canvas canvas = new Canvas(bitmapHolder); //this bitmap was passed to AsyncTask
Bitmap tmpBitmap = Bitmap.decodeStream(...);
canvas.drawBitmap(tmpBitmap, 0, 0, null); //this will copy your decoded bitmap into your original bitmap which was passed into AsyncTask
......