理论上,假设我有一个看起来像这样的视图:
它是通过'drawCircle','drawRect'等方法在'onDraw'中制作的......
...现在让我说我有一个可以想象的圆圈(好吧,我不在视图上绘制的圆形物体),我希望视图在可想象的圆圈内填充一些颜色除外......所以我希望它看起来像这样:
我怎样才能实现这一点?
答案 0 :(得分:1)
不确定如何做到这一点,但请查看PorterDuff。 Take a look at this question
这是我在ProgramCreek找到的一个例子(exapmle#8):
private Bitmap getRoundedCornerBitmap(Bitmap bitmap){
Bitmap output=Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),Config.ARGB_8888);
Canvas canvas=new Canvas(output);
final Paint paint=new Paint();
final Rect rect=new Rect(0,0,bitmap.getWidth(),bitmap.getHeight());
final RectF rectF=new RectF(rect);
paint.setAntiAlias(true);
canvas.drawARGB(0,0,0,0);
paint.setColor(0xFFFFFFFF);
canvas.drawRoundRect(rectF,roundPixels,roundPixels,paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap,rect,rect,paint);
return output;
}