package day9.bawei.com.ds_day9;
import android.content.Context;
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.Shader;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
public class MyXiaoqiu extends android.support.v7.widget.AppCompatImageView {
private int anInt;
public MyXiaoqiu(Context context) {
super(context);
}
public MyXiaoqiu(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//获取当期view 的宽高
int measuredWidth = getMeasuredWidth();
int measuredHeight = getMeasuredHeight();
anInt = Math.min(measuredWidth, measuredHeight) / 2;
}
@Override
protected void onDraw(Canvas canvas) {
//super.onDraw(canvas);
float mScale = 1;
Paint paint = new Paint();
paint.setColor(Color.RED);
//2.获取控件中的图片
BitmapDrawable drawable = (BitmapDrawable) getDrawable();
//3.判断draw是否为空
if (drawable!=null) {
//4.使用bitmap把图片和圆关联
Bitmap bitmap = drawable.getBitmap();
BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
//5.矩阵等比例缩放图片
mScale = (anInt * 2.0f) / Math.min(bitmap.getHeight(), bitmap.getWidth());
Matrix matrix = new Matrix();
matrix.setScale(mScale, mScale);
bitmapShader.setLocalMatrix(matrix);
//6.使用画笔实现缩放
paint.setShader(bitmapShader);
//7.画圆
canvas.drawCircle(anInt,anInt,anInt,paint);
} else {
super.onDraw(canvas);
}
}
}
圆形头像
最新推荐文章于 2021-08-04 04:19:36 发布