2012年11月9日金曜日

[Android SDK] ResourceからカラーフィルタしたBitmapを作成する

Resourceにある画像をカラーフィルタ処理をした、Bitmapを作成する方法を書きます。

ソース

// RemoteViews rv;
// int resId;
// Context context;
Bitmap icon = BitmapFactory.decodeResource(context.getResources(), resId);
Bitmap bitmap = Bitmap.createBitmap(icon.getWidth(), icon.getHeight(), icon.getConfig());
LightingColorFilter filter1 = new LightingColorFilter(0xFFFFFF, Color.WHITE);
Canvas canvas = new Canvas(bitmap);
Paint p = new Paint();
p.setColorFilter(filter1);
canvas.drawBitmap(icon, 0, 0, p);
// rv.setImageViewBitmap(R.id.icon, bitmap);

解説

ウィジェット作成していて、画像を貼り付けるにはResourceIDかBitmapしか方法がなくて、DrawableだったらsetColorFilterを使えば簡単にできたんだけど。仕方ないので、バッファBimapにカラーフィルタ処理付きで画像(Bitmap)を描画して作成しました。

結果

こんなアイコンをウィジェットに白色加工して貼り付けました。





色違いアイコンを作り直さなくていいから楽ちん。



0 件のコメント:

コメントを投稿