Android有时候会遇到需要两张图片叠加起来的效果,现记录如下:
/*
*此方法分别传入两个bitmap对象,一个为底图(背景图background),
*另一个则位于其上面(前景图foreground),若上面的bitmap是不透明的话,
*就会完全遮住下面的bitmap,那么保存为图片后,就只能看到位于上面的bitmap的信息,
*图片的大小为两个bitmap叠加的大小。
*/
private Bitmap toConformBitmap(Bitmap background, Bitmap foreground) {
if( background == null ) {
return null;
}
int bgWidth = background.getWidth();
int bgHeight = background.getHeight();
//create the new blank bitmap 创建一个新的和SRC长度宽度一样的位图
Bitmap newbmp = Bitmap.createBitmap(bgWidth, bgHeight, Bitmap.Config.ARGB_8888);
Canvas cv = new Canvas(newbmp);
//draw bg into
//在 0,0坐标开始画入bg
cv.drawBitmap(background, 0, 0, null);
//draw fg into
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
//在 0,0坐标开始画入fg ,可以从任意位置画入
cv.drawBitmap(foreground, 0, 1000, paint);
//save all clip
paint.setXfermode(null);
return newbmp;
}/*
*此方法分