Android 3d TOS Launcher 之桌面图标主题加框规格化

来源:互联网 发布:阿里巴巴php招聘 编辑:程序博客网 时间:2024/06/06 10:01

 //图标缩放比例    public static float iconScaleRadio=1f;    private static Canvas mCanvas=new Canvas();    private static Paint mPaint = new Paint();    public synchronized Bitmap markIconTheme(Bitmap original) {        try {            initMarkIcons();            if (original != null&&mCanvas!=null) {                Bitmap resultBmp = Bitmap.createBitmap(IconConfig.iconSize, IconConfig.iconSize,                        Bitmap.Config.ARGB_8888);                mPaint.setAntiAlias(true);                mCanvas.setBitmap(resultBmp);                //------sep1---- 画背景                mPaint.setXfermode(null);                mCanvas.drawBitmap(icon_background, 0, 0, null);                //-----sep2 --------icon mask 需要重新建立新的图层来交集图片                int sc = mCanvas.saveLayer(0,0, IconConfig.iconSize, IconConfig.iconSize, null,                        Canvas.MATRIX_SAVE_FLAG |                                Canvas.CLIP_SAVE_FLAG |                                Canvas.HAS_ALPHA_LAYER_SAVE_FLAG |                                Canvas.FULL_COLOR_LAYER_SAVE_FLAG |                                Canvas.CLIP_TO_LAYER_SAVE_FLAG);                mCanvas.drawBitmap(icon_mask, 0, 0, mPaint);                mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));                //绘制居中图片                if (resultBmp.getWidth() > original.getWidth()) {                    int offset = (resultBmp.getWidth() - original.getWidth()) / 2;                    mCanvas.translate(offset, offset);                    mCanvas.drawBitmap(original, 0, 0, mPaint);                    mCanvas.translate(-offset, -offset);                } else {                    mCanvas.drawBitmap(original, 0, 0, mPaint);                }                mPaint.setXfermode(null);                mCanvas.restoreToCount(sc);                //------sep3---- 画金属框                mCanvas.drawBitmap(icon_border, 0, 0, mPaint);                //end                if (original != null && !original.isRecycled()) {                    original.recycle();                    original = null;                }                return resultBmp;            }        } catch (Exception e) {            if(mCanvas!=null)            mCanvas.setBitmap(null);        } finally {        }        return null;    }




0 0