android-discuss
android-discuss copied to clipboard
关于 如何清除自定义View 绘制的内容,如绘制的曲线
canvas.drawColor(getResources().getColor(R.color.white)); 这种方式,只会添加一层白色背景,绘制的曲线仍然无法清除
用变量在onDraw方法里面加个条件判断,特定的条件下不执行绘制曲线的代码,改变这个变量后再invalidate一下不就行了?
@figobbq 在onDraw 里面调用invalidate 或者直接用mView.invalidate() 都不起作用
@Fengcoder 你确定继承的是View,而不是surface?我记得surface才需要画画一层颜色来覆盖上次绘制的内容
@ipcjs surface 确实需要那样做,我是继承的view,上面那种添加白色背景是自己尝试的失败方法
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
我使用了该方法,View显示黑色了
canvas.drawColor(Color.TRANSPARENT); canvas.save(); canvas.restore(); 用这个方法可以的。我自己写的就是这样子的