我有一个位图下载程序类,它将流解码为Bitmap对象。
我可以做点什么吗
Bitmap bitmap;
bitmap = object;
当我imageview.setImageBitmap(bitmap)
时
与imageview.setImageBitmap(object)
另外,创建多个位图实例是否可行?像:
for(i = 0; i < 10; i++) {
Bitmap bitmap = new Bitmap(); // how to do this?
new BitmapDownloaderAsynctask(bitmap).execute(url);
}
答案 0 :(得分:1)
当我做imageview.setImageBitmap(位图)与imageview.setImageBitmap(object)相同
是的,它会是相同的(只要object
是Bitmap
的另一个实例)
为了手动创建Bitmap
,存在一堆静态方法Bitmap.createBitmap()来创建位图(Bitmap class)
例如,这是创建位图的最简单方法:
Bitmap bmp = Bitmap.createBitmap(100, 100, Config.ARGB_8888); //100*100 bitmap in ARGB color space
修改强>
如果您需要保持位图引用不变,则需要在单独的位图中解码流,然后将此位图的内容复制到原始的bitmapHolder中。您可以通过在画布上绘图来实现:
AsyncTask代码:
.....
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
.....