將矩形圖片轉化為圓形圖片


功能:點擊按鈕將一張矩形的圖片裁剪為圓形的圖片,圓形圖片為矩形的內切圓

工具類:

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

效果:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM