0

ストリームを 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); 
}
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 にコピーする必要があります。キャンバスに描画することでそれを行うことができます:

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

.....

于 2013-05-03T20:04:30.003 に答える