背景と前景の2つのビットマップがあります。別のキャンバスを使用せずに、背景にビットマップの前景を描画するにはどうすればよいですか?
解決:
1)最初に、追加オプションARGB_8888を使用してリソースからビットマップを作成します
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
2)ビットマップを宣言します
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.background, options);
Bitmap foreground = BitmapFactory.decodeResource(getResources(), R.drawable.foreground, options);
3)onDraw()関数内でグラフィックを描画します
protected void onDraw(Canvas canvas)
{
canvas.drawColor(Color.White);
Paint paint = new Paint();
canvas.drawBitmap(background, 0, 0, paint);
paint.setXfermode( new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
canvas.drawBitmap(foreground, 0, 0, paint);
}
Soxxehが言ったように、これは非常に優れた情報源です:http: //developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html