效果图:
代码:
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就画成了上面是圆角,下面是直角了。如果需要图片的四个角为不同的直角圆角,只需要改一下我们的圆角半径值就可以了。
本文介绍了一种自定义Android ImageView的方法,使其能够显示上方为圆角下方为直角的图片效果。通过创建RoundImage类并重写onDraw方法,利用Canvas和Path实现不同圆角效果。只需调整圆角半径值即可实现更多定制化需求。
424

被折叠的 条评论
为什么被折叠?



