Top Picks

January 15, 2013


How to erase path area from canvas (Android)


I need to crop corners on


. Not to round them but erase triangles from each corner.

Seems like the only way to do that is to override


method and erase these areas from canvas using


. The problem is I have not solid color background, so I need ERASE these areas but not to fill them with some color.

I use following code for that:

@Override protected void onDraw(Canvas canvas) { Path path = new Path(); path.moveTo(0, 0); path.lineTo(20, 0); path.lineTo(0, 20); path.close(); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); canvas.drawPath(path, paint); super.onDraw(canvas); }

But the corner makes black but not transparent. Could you help me? Or probably you know better solution for my task. Here is how it looks like.

enter image description here



use this Line

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

instead of this

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
Professional Hosting fro Just Host

Filed under: Android Coding FAQ



No Comments

Leave a reply