Tôi đã có hai bitmap, nền và foreground. Làm thế nào để vẽ bitmap foreground trên nền mà không cần sử dụng Canvas khác?Vẽ bitmap từ các tài nguyên khác
Giải pháp:
1) Trước tiên tạo bitmap từ các nguồn lực với tùy chọn bổ sung ARGB_8888
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
2) Khai báo bitmap
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.background, options);
Bitmap foreground = BitmapFactory.decodeResource(getResources(), R.drawable.foreground, options);
3) Bên trong OnDraw() đồ họa chức năng vẽ
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);
}
.210
Và như Soxxeh nói, đây là nguồn rất tốt của thông tin: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html
Vì vậy, giải pháp này có hiệu quả hay bạn đang đặt câu hỏi? –