源码下载:https://download.csdn.net/download/explorerqp/11317063
补充:
1.此Demo可以对任意矩形图片进行截取圆形。
2.矩形的圆角大小可以设置参数radius来调整圆角的大小。
效果图:
自定义RoundRecImageView:
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
import com.dlzs.progress.demoprogress.R;
public class RoundRecImageView extends AppCompatImageView {
private static final int DEFAULT_BORDER_WIDTH = 0;
private static final int DEFAULT_BORDER_COLOR = Color.WHITE;
private int mBorderColor;
private int mBorderWidth;
private Paint paintImage;
private Paint paintBorder;
/**
* 圆角的幅度
**/
private float mRadius;
/**
* 是否是圆形
**/
private boolean mIsCircle;
public RoundRecImageView(final Context context) {
this(context, null);
}
public RoundRecImageView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public RoundRecImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.setScaleType(ScaleType.FIT_XY);
// 获取自定属性配置
TypedArray ta = context.obtainStyledAttributes(attrs,
R.styleable.CircleImageView, defStyle, 0);
mRadius = ta.getDimensionPixelSize(R.styleable.CircleImageView_radius, 0);
mIsCircle = ta.getBoolean(R.styleable.CircleImageView_circle, false);
m