为网友们分享了相关的编程文章,网友杜灿灿根据主题投稿了本篇教程内容,涉及到Android、圆形图片、Android圆形图片小工具相关内容,已被589网友关注,内容中涉及的知识点可以在下方直接下载获取。
Android圆形图片小工具
本文实例为大家分享了Android实现圆形图片小工具的具体代码,供大家参考,具体内容如下
1.CircleImageView类代码
public class CircleImageView extends androidx.appcompat.widget.AppCompatImageView { //画笔 private Paint mPaint; //圆形图片的半径 private int mRadius; //图片的宿放比例 private float mScale; public CircleImageView(Context context) { super(context); } public CircleImageView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public CircleImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); //由于是圆形,宽高应保持一致 int size = Math.min(getMeasuredWidth(), getMeasuredHeight()); mRadius = size / 2; setMeasuredDimension(size, size); } @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { mPaint = new Paint(); Drawable drawable = getDrawable(); if (null != drawable) { Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); //初始化BitmapShader,传入bitmap对象 BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); //计算缩放比例 mScale = (mRadius * 2.0f) / Math.min(bitmap.getHeight(), bitmap.getWidth()); Matrix matrix = new Matrix(); matrix.setScale(mScale, mScale); bitmapShader.setLocalMatrix(matrix); mPaint.setShader(bitmapShader); //画圆形,指定好坐标,半径,画笔 canvas.drawCircle(mRadius, mRadius, mRadius, mPaint); } else { super.onDraw(canvas); } } }
2.布局文件中使用
代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。