zoukankan      html  css  js  c++  java
  • 将矩形图片转化为圆形图片

    功能:点击按钮将一张矩形的图片裁剪为圆形的图片,圆形图片为矩形的内切圆

    工具类:

    import android.graphics.Bitmap;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.PorterDuff;
    import android.graphics.PorterDuffXfermode;
    
    /**
     * 将矩形图片变为圆形的工具类
     */
    public class CircleBitmap  {
    
        public Bitmap getBitmap(Bitmap source) {
            //我这里是得到bitmap宽与高的最小值,然后作为圆的半径  
            int min = source.getHeight()>source.getWidth()?source.getWidth():source.getHeight();
            return createCircleImage(source,min);
        }
    
        /**
         * 创建圆形图片的一个方法
         * @param source  需要转变成圆形的bitmap图片
         * @param min  圆形bitmap的半径
         * @return 返回变换好的圆形bitmap
         */
        private Bitmap createCircleImage(Bitmap source, int min)
        {
            final Paint paint = new Paint();
            paint.setAntiAlias(true);
            Bitmap target = Bitmap.createBitmap(min, min, Bitmap.Config.ARGB_8888);
            /**
             * 产生一个同样大小的画布
             */
            Canvas canvas = new Canvas(target);
            /**
             * 首先绘制圆形
             */
            canvas.drawCircle(min / 2, min / 2, min / 2, paint);
            /**
             * 使用SRC_IN  交互
             */
            paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
            /**
             * 绘制图片
             */
            canvas.drawBitmap(source, 0, 0, paint);
            return target;
        }
    
    }

    实例:

          final ImageView image = (ImageView) findViewById(R.id.image);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.b);
                    Bitmap afterBitmap = new CircleBitmap().getBitmap(bitmap);
                    image.setImageBitmap(afterBitmap);
                    }
            });

    效果:

     

  • 相关阅读:
    mysql常用基本命令
    mysql8.0.13下载与安装图文教程
    k8s ingress 增加跨域配置
    Jenkins 备份恢复插件 thinBackup 使用
    k8s HA master 节点宕机修复
    nginx 跨域问题解决
    mongodb 3.4.24 主从复制
    k8s 线上安装 jenkins并结合 jenkinsfile 实现 helm 自动化部署
    k8s helm 运用与自建helm仓库chartmuseum
    centos6 源码安装 unzip
  • 原文地址:https://www.cnblogs.com/fangg/p/5918329.html
Copyright © 2011-2022 走看看