首页 > 移动平台 > 详细

Android 实现遮罩

时间:2015-03-25 14:03:20      阅读:380      评论:0      收藏:0      [点我收藏+]

关键方法

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));


说明

canvas原有的图可以理解为Dst

新画上去的前景图可以理解为Sre

Mode值如下图

技术分享


一般用法

Canvas canvas = new Canvas(bitmap1);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(mask, 0f, 0f, paint);


获取Bitmap

/**
* 根据原图和变长绘制圆形图片
*
* @param source
* @param min
* @return
*/
private Bitmap createCircleImage(Bitmap source, int min) {
final Paint paint = new Paint();
paint.setAntiAlias(true);
// 注意一定要用ARGB_8888,否则因为背景不透明导致遮罩失败
Bitmap target = Bitmap.createBitmap(min, min, Config.ARGB_8888);
// 产生一个同样大小的画布
Canvas canvas = new Canvas(target);
// 首先绘制圆形
canvas.drawCircle(min / 2, min / 2, min / 2, paint);
// 使用SRC_IN
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
// 绘制图片
canvas.drawBitmap(source, 0, 0, paint);
return target;
}

Android 实现遮罩

原文:http://blog.csdn.net/h3c4lenovo/article/details/44619913

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!