如何用更少的 alpha 重绘

How to redraw with less alpha

在我的自定义视图中,我正在绘制一个 alpha 为 0 的矩形。我希望当用户单击按钮时,alpha 会更改为 100 并重新绘制。当按下鼠标按钮时,alpha 应该重置为 0。据我所见,它没有重绘为 0,而是在每次单击时它都会增加 100 而不会变为 0。

if(transparentRightClick){
            gameBasePaint.setAlpha(0);
        }
        else{
            gameBasePaint.setAlpha(clickRightColor);
        }
        nextClicked = new RectF(displayWidth*0.8f,displayWidth*0.91f,displayWidth*1f,displayWidth*1.35f);
        gameBaseCanvas.drawRect(nextClicked,gameBasePaint);

这是在'onDraw'方法中。当他单击按钮时,'if' 语句设置为 false,并且 'clickRightColor' 动态变化 (0-100) 以提供动画效果。当按下鼠标按钮时,'if' 再次设置为 true,并且应该重新绘制为空。每次操作后调用 invalidate。

我的问题原来是 'gameBaseCanvas' 没有在 onDraw 方法中重新初始化,所以它一直在添加它并且从不删除以前的绘图。