效果图:
代码:
package com.maixian.mx_android.widget; import android.content.Context; import android.graphics.Canvas; import android.graphics.Path; import android.graphics.RectF; import android.util.AttributeSet; import android.widget.ImageView; /** * Created by xuemei on 2016/2/24. */ public class RoundImage extends ImageView { /*圆角的半径,依次为左上角xy半径,右上角,右下角,左下角*/ private float[] rids = {20.0f, 20.0f, 20.0f, 20.0f, 0.0f, 0.0f, 0.0f, 0.0f}; public RoundImage(Context context) { super(context); } public RoundImage(Context context, AttributeSet attrs) { super(context, attrs); } public RoundImage(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { Path path = new Path(); int w = this.getWidth(); int h = this.getHeight(); /*向路径中添加圆角矩形。radii数组定义圆角矩形的四个圆角的x,y半径。radii长度必须为8*/ path.addRoundRect(new RectF(0, 0, w, h), rids, Path.Direction.CW); canvas.clipPath(path); super.onDraw(canvas); } }
说明:
我们给路径添加圆角矩形,将我们定义的圆角半径设置进去,给canvas切割一下画布就可以了。imageview就画成了上面是圆角,下面是直角了。如果需要图片的四个角为不同的直角圆角,只需要改一下我们的圆角半径值就可以了。