我正在实现一个带有擦除选项的绘画应用程序。我正在使用 PorterDuff.Mode.Clear 执行此操作,但在擦除时我有两种不同的行为,具体取决于 hardwareAccelerated 标志。
绘画时截图:https ://dl.dropbox.com/u/194622/Screenshot_2012-12-13-16-36-33.png
最终结果是一样的,但是这个“黑色痕迹”只发生在硬件加速开启的擦除过程中。
除了禁用硬件加速之外还有什么建议吗?
编辑:
添加一些代码:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
}