Android Canvas:删除/隐藏圆圈外的部分

时间:2013-08-09 14:25:50

标签: android

我正在研究一种图像围绕圆圈旋转的东西。我只希望第二张图像的重叠部分...例如举一个例子:

enter image description here

Violet图像围绕绿色图像旋转。我只想要绿色图像&紫罗兰重叠部分(Sea Green)如何在Android中执行此操作?

PS:紫色图像不仅围绕绿色旋转,还围绕其轴旋转,因此交叉部分每个时间间隔都会改变

1 个答案:

答案 0 :(得分:0)

请检查:http://softwyer.wordpress.com/2012/01/21/1009/

使用不同的PorterDuff.Mode可以实现不同的效果。以下是如何使位图具有圆角的示例:

        Bitmap bitmap = Bitmap.createBitmap(b.getWidth(), b.getHeight(), b.getConfig());
        Canvas canvas = new Canvas(bitmap);
        Paint p =  new Paint(Paint.ANTI_ALIAS_FLAG);
        p.setColor(Color.BLACK);
        canvas.drawRoundRect(new RectF(0, 0, b.getWidth(), b.getHeight()), borderRadius, borderRadius, p);
        p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(b, 0, 0, p);