3

我正在实现一个带有擦除选项的绘画应用程序。我正在使用 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);
}
4

0 回答 0