android 最优绘制圆图方法

来源:互联网 发布:文档网络在哪里 编辑:程序博客网 时间:2024/06/05 22:38
public class OvalImageView extends ImageView {


    public OvalImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }


    public OvalImageView(Context context) {
        super(context);
        init();
    }


    private final RectF roundRect = new RectF();
    private float rect_adius = 50;
    private final Paint maskPaint = new Paint();
    private final Paint zonePaint = new Paint();


    private void init() {
        maskPaint.setAntiAlias(true);
        maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        zonePaint.setAntiAlias(true);
        zonePaint.setColor(Color.WHITE);
        float density = getResources().getDisplayMetrics().density;
        rect_adius = rect_adius * density;
    }


    public void setRectAdius(float adius) {
        rect_adius = adius;
        invalidate();
    }


    @Override
    protected void onLayout(boolean changed, int left, int top, int right,
            int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        int w = getWidth();
        int h = getHeight();
        roundRect.set(0, 0, w, h);
    }


    @Override
    public void draw(Canvas canvas) {
    int src=canvas.saveLayer(roundRect, zonePaint, Canvas.ALL_SAVE_FLAG);
    canvas.drawArc(roundRect, 0f, 360f, false, zonePaint);
    canvas.saveLayer(roundRect, maskPaint, Canvas.ALL_SAVE_FLAG);
        super.draw(canvas);
        canvas.restoreToCount(src);
        
    }


}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 婴儿喜欢舔衣服怎么办 一岁半宝宝抵抗力差怎么办 两个月宝宝打嗝怎么办 衣服买大一码怎么办 8岁儿童头汗多怎么办 新生儿肛门红了怎么办 40天新生儿发烧怎么办 十天婴儿发烧怎么办 宝宝发烧37.3度怎么办 小孩发烧37.2度怎么办 宝宝37.5不退热怎么办 三个半月宝宝发烧怎么办 婴儿发烧37.4度怎么办 小孩发烧37.4度怎么办 20天新生儿低烧怎么办 四个月婴儿低烧怎么办 宝宝追听不好怎么办 2个多月宝宝不追听怎么办 宝宝拒吃奶粉怎么办 婴儿被吓到了怎么办 婴儿脊柱侧弯怎么办 母乳脂肪含量高怎么办 混合喂养宝宝拉肚子怎么办 混合喂养不吃奶粉怎么办 混合喂养宝宝便秘怎么办 混合喂养不吃奶瓶怎么办 混合喂养厌奶粉怎么办 气血虚奶水少怎么办 产后奶水不足怎么办啊 婴儿吐奶瓣和水怎么办 一岁半宝宝频繁喝夜奶怎么办 婴儿腹泻不吃奶怎么办 八个月宝宝脱水怎么办 宝宝呕吐脱水了怎么办 宝宝腹泻没精神怎么办 小孩拉稀没精神怎么办 宝宝拉稀脱水了怎么办 宝宝发烧还拉肚子怎么办 宝宝发烧后腹泻怎么办 吃海鲜拉肚子了怎么办 孕妇吃海鲜腹泻怎么办