所以只是搞乱了 SDK 中的 Fingerpaint 演示并尝试实现“全部清除”功能而不是使用橡皮擦工具。我在下面添加了代码,但只有在您触摸屏幕后才有效。例如。我在屏幕上涂写了一点,点击了“全部清除”按钮,但涂写仍然存在,直到我用手指点击屏幕,它才消失。如何让屏幕在按下按钮后立即更新?提前致谢。
private void clearAll() {
mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
}
最佳答案
要清除 Canvas ,最好只调用 Canvas.drawColor(Color.BLACK)
或使用其他颜色。你这样做的方式似乎也有效,但它也是 1) 创建额外的对象,以及 2) 在再次调用 onDraw()
之前不会使用新的 Canvas 。
我认为调用 drawColor()
会自动使 Canvas 无效并强制重绘。如果没有,或者如果您想坚持使用新的 Bitmap
和新的 Canvas
,请尝试添加对 View.invalidate()
的调用.
关于java - Android Java Fingerpaint 清除所有功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792955/