zoukankan      html  css  js  c++  java
  • 创建一个圆形头像框

    GitHub:链接

     

    package com.example.administrator.testt;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.PaintFlagsDrawFilter;
    import android.graphics.Path;
    import android.graphics.Rect;
    import android.graphics.Region;
    import android.util.AttributeSet;
    
    public class RoundImageView extends android.support.v7.widget.AppCompatImageView{
        private Bitmap mBitmap;
        private Rect mRect = new Rect();//Rect=Rectangle
        private PaintFlagsDrawFilter pdf = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG);
        private Paint mPaint = new Paint();
        private Path mPath = new Path();
    
        public RoundImageView(Context context, AttributeSet attributeSet) {
            super(context,attributeSet);
            init();
        }
    
        public void setBitmap(Bitmap bitmap) {
            this.mBitmap = bitmap;
        }
    
        private void init(){
            mPaint.setStyle(Paint.Style.STROKE);
            mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);
            mPaint.setAntiAlias(true); // 抗锯齿
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            if (mBitmap == null) {
                return;
            }
            mRect.set(0, 0, getWidth(), getHeight());
            canvas.save();
            canvas.setDrawFilter(pdf);
            mPath.addCircle(getWidth()/2,getWidth()/2,getHeight()/2,Path.Direction.CCW);
            canvas.clipPath(mPath, Region.Op.REPLACE);
            canvas.drawBitmap(mBitmap, null, mRect, mPaint);//绘制图
            canvas.restore();
        }
    }

  • 相关阅读:
    分享一个详情页
    ES6初探,变量的声明
    ES6初探,什么是ES6
    提问回顾
    个人阅读&个人总结
    结对项目-数独程序扩展
    个人作业Week3-案例分析
    个人作业Week2-代码复审
    个人作业1
    【个人项目】数独
  • 原文地址:https://www.cnblogs.com/Ravenzzz/p/9771280.html
Copyright © 2011-2022 走看看