图片圆角处理


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);
        }
}

优质内容筛选与推荐>>
1、【node】node连接mongodb操作数据库
2、安装pip
3、逻辑回归原理
4、罗马数字倒转成阿拉伯数字
5、PYTHON2.day01


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号