Top Picks

Movies by Flixster

4.594812

 

FREE
   
January 15, 2013

 

How to erase path area from canvas (Android)

 

I need to crop corners on

ImageView

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

Seems like the only way to do that is to override

onDraw

method and erase these areas from canvas using

Path

. 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

 

Answer

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

Tags:

Comments

No Comments

Leave a reply