• 图片圆角处理


    package com.storm.ui;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.PorterDuff.Mode;
    import android.graphics.PorterDuffXfermode;
    import android.graphics.RectF;
    import android.util.AttributeSet;
    import android.widget.ImageView;
    
    /**
     * 圆角图片
     * 
     * @author Chao
     * */
    
    public class RoundedCornerImageView extends ImageView {
    
            private final float density = getContext().getResources()
                            .getDisplayMetrics().density;
            private float roundness;
    
            public RoundedCornerImageView(Context context) {
                    super(context);
    
                    init();
            }
    
            public RoundedCornerImageView(Context context, AttributeSet attrs) {
                    super(context, attrs);
    
                    init();
            }
    
            public RoundedCornerImageView(Context context, AttributeSet attrs,
                            int defStyle) {
                    super(context, attrs, defStyle);
    
                    init();
            }
    
            @Override
            public void draw(Canvas canvas) {
                    final Bitmap composedBitmap;
                    final Bitmap originalBitmap;
                    final Canvas composedCanvas;
                    final Canvas originalCanvas;
                    final Paint paint;
                    final int height;
                    final int width;
    
                    width = getWidth();
    
                    height = getHeight();
    
                    composedBitmap = Bitmap.createBitmap(width, height,
                                    Bitmap.Config.ARGB_8888);
                    originalBitmap = Bitmap.createBitmap(width, height,
                                    Bitmap.Config.ARGB_8888);
    
                    composedCanvas = new Canvas(composedBitmap);
                    originalCanvas = new Canvas(originalBitmap);
    
                    paint = new Paint();
                    paint.setAntiAlias(true);
                    paint.setColor(Color.BLACK);
    
                    super.draw(originalCanvas);
    
                    composedCanvas.drawARGB(0, 0, 0, 0);
    
                    composedCanvas.drawRoundRect(new RectF(0, 0, width, height),
                                    this.roundness, this.roundness, paint);
    
                    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    
                    composedCanvas.drawBitmap(originalBitmap, 0, 0, paint);
    
                    canvas.drawBitmap(composedBitmap, 0, 0, new Paint());
            }
    
            public float getRoundness() {
                    return this.roundness / this.density;
            }
            
            public void setRoundness(float roundness) {
                    this.roundness = roundness * this.density;
            }
            private void init() {
                    setRoundness(5);
            }
    }
  • 相关阅读:
    Leetcode刷题有感
    [博客迁移] 准备将博客从CSDN迁移至博客园
    加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)
    Linux能ping主机,但ping不了网关以及外网,显示包全丢失解决方案
    如何设置centos7的ip地址配置信息,让我的主机和它互Ping,以及远程登陆
    线程池 ThreadPoolTaskExecutor
    java Http请求
    java排序
    java的代理
    java的反射机制
  • 原文地址:https://www.cnblogs.com/yangcong/p/3747985.html
Copyright © 2020-2023  润新知