android通過Canvas和Paint截取無鋸齒圓形圖片


  一個通過Canvas和Paint截取無鋸齒圓形圖片。

    /**
     * 根據原圖和變長繪制圓形圖片
     *
     * @param source
     * @param min
     * @return
     */
    public static Bitmap createCircleImage(Bitmap source, int min) {
        Paint paint = new Paint();
//        paint.setStyle(Paint.Style.STROKE);
//        paint.setFlags(Paint.ANTI_ALIAS_FLAG);
        paint.setAntiAlias(true);
        paint.setFilterBitmap(true);
        Bitmap target = Bitmap.createBitmap(min, min, source.getConfig());
        /**
         * 產生一個同樣大小的畫布
         */
        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加上抗鋸齒標志
         */
        canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG));

        /**
         * 繪制圖片
         */
        canvas.drawBitmap(source, 0, 0, paint);
        return target;
    }

 


免責聲明!

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



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