Android View OnDraw方法:除了一些视图外,还要填写所有内容

时间:2015-07-07 14:23:33

标签: java android ondraw

理论上,假设我有一个看起来像这样的视图:

enter image description here

它是通过'drawCircle','drawRect'等方法在'onDraw'中制作的......

...现在让我说我有一个可以想象的圆圈(好吧,我不在视图上绘制的圆形物体),我希望视图在可想象的圆圈内填充一些颜色除外......所以我希望它看起来像这样:

enter image description here

我怎样才能实现这一点?

1 个答案:

答案 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;
}