0

我有一个位图下载器类,它将流解码为位图对象。

我可以做类似的事情吗

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); 
}
4

1 回答 1

1

当我做 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

......

于 2013-05-03T20:04:30.003 回答