橡皮擦实现是通过设置Paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT)),但是笔触老是为黑色。如何处理?

解决方案 »

  1.   

    这个问题碰到过~ 直接在onDraw的canvas上面使用橡皮擦就是画黑线的效果,但松开时确实起到了“橡皮擦”效果。   至于为什么也不太清楚~
    解决方法是你不要直接在onDraw的canvas上画,先通过以下方式自己申明Bitmap及Canvas。然后在onTouch里用mCanvas去画,再invalidate()在onDraw方法里用它提供的canvas去画mBitmap。
    Bitmap.Config localConfig = Bitmap.Config.ARGB_8888;
    mBitmap = Bitmap.createBitmap(width, height, localConfig);
    mCanvas = new Canvas(mBitmap);
    实际上就是多了道过程,先把要画的东西画到自己的mBitmap上,然后再在onDraw显示出来~