我有两个位图,一个是背景,一个是前景。如何在不使用另一个画布的情况下将前景位图绘制到背景上?
解决方法:
1)首先使用附加选项ARGB_8888从资源中创建位图
解决方法:
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