package com.mm.android.deviceaddmodule.mobilecommon.widget; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import com.mm.android.deviceaddmodule.R; /** * 自定义 ImageView 控件,实现了圆角和边框,以及按下变色 * * 修改设置选中 颜色和 按下颜色 的方法 ,通过系统api调用, 移除java代码依赖, 只需要依赖xml和attr配置 */ public class FilletCornerImageView extends android.support.v7.widget.AppCompatImageView { // 图片的宽高 private int width; private int height; // 圆角半径 private int radius; private Path mPath; public FilletCornerImageView(Context context) { super(context); init(context, null); } public FilletCornerImageView(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs); } public FilletCornerImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs); } private void init(Context context, AttributeSet attrs) { //初始化默认值 mPath = new Path(); radius = 16; // 获取控件的属性值 if (attrs != null) { TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.FilletCornerImageView); radius = array.getDimensionPixelOffset(R.styleable.FilletCornerImageView_fillet_radius, radius); array.recycle(); } setClickable(true); setDrawingCacheEnabled(true); setWillNotDraw(false); } Paint paint = new Paint(); @Override protected void onDraw(Canvas canvas) { if(width