PorterDuff.Mode 使用注意事项

2018-08-22  本文已影响10人  INeil

自定义View使用到PorterDuff.Mode时,往往不是预期效果,需注意以下4点:

    //开始离屏缓冲
    int saveCount = canvas.saveLayer(offScreenRect, mPaint, Canvas.ALL_SAVE_FLAG);
    //开始绘制
    canvas.drawBitmap();
    ...
    //绘制完成,还原画布
    canvas.restoreToCount(saveCount);

注:先绘制的在下层,为DST;后绘制的在上层,为SRC

如果需要drawCircle,drawRect,可采用以下方式

 
        dstBmp = Bitmap.createBitmap(300,300, Bitmap.Config.ARGB_8888);
        Canvas dstCanvas=new Canvas(dstBmp);
        mPaint.setColor(Color.RED);
        dstCanvas.drawRect(100,0,300,200,mPaint);
        ....
        canvas.drawBitmap(dstBmp , null, dstRect, mPaint);
上一篇 下一篇

猜你喜欢

热点阅读