您的位置:首页 > 移动开发 > Android开发

Android 实现遮罩

2015-03-25 12:07 183 查看

关键方法

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; 

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: