最近碰巧遇带这样的功能,通过将2个图片“画”成一个图片,显示一些相似的效果
参考网址:http://www.2cto.com/kf/201502/377417.html
一下做个记录
/*
* 使用Canvas合并Bitmap
*/
private
Bitmap mergeBitmap() {
// 获取ImageView上得Bitmap图片
Bitmap bmp1 = ((BitmapDrawable) ivBmp1.getDrawable()).getBitmap();
Bitmap bmp2 = ((BitmapDrawable) ivBmp2.getDrawable()).getBitmap();
// 创建空得背景bitmap
// 生成画布图像
Bitmap resultBitmap = Bitmap.createBitmap(ivBmpMerge.getWidth(),
ivBmpMerge.getHeight(), Bitmap.Config.RGB_565);
Canvas canvas =
new
Canvas(resultBitmap);
// 使用空白图片生成canvas
// 将bmp1绘制在画布上
Rect srcRect =
new
Rect(
0
,
0
, bmp1.getWidth(), bmp1.getHeight());
// 截取bmp1中的矩形区域
Rect dstRect =
new
Rect(
0
,
0
, ivBmpMerge.getWidth() /
2
,
ivBmpMerge.getHeight());
// bmp1在目标画布中的位置
canvas.drawBitmap(bmp1, srcRect, dstRect,
null
);
// 将bmp2绘制在画布上
srcRect =
new
Rect(
0
,
0
, bmp2.getWidth(), bmp2.getHeight());
// 截取bmp1中的矩形区域
dstRect =
new
Rect(ivBmpMerge.getWidth() /
2
,
0
, ivBmpMerge.getWidth(),
ivBmpMerge.getHeight());
// bmp2在目标画布中的位置
canvas.drawBitmap(bmp2, srcRect, dstRect,
null
);
// 将bmp1,bmp2合并显示
return
resultBitmap;
}
备注:当然了bitmap的获得可以是其他的方法,不一定是imageview,使用的过程倒是类似。