我有一个圆圈的图像。我想首先将它显示给用户。
在 CountDownTimer
的 onTick()
方法中,我希望它以循环方式逐个扇区平滑地消失。下面是一张图片,它解释了我想要更好的方式:
灰色区域实际上是透明的。
在 CountDownTimer
的 onFinish()
中,图像应该完全消失。
1) 我想这可以使用 Canvas.drawArc()
来完成。我必须计算角度、绘制弧线并用透明色填充圆形图像的那个部分,对吧?
new CountDownTimer(fullSpan, tick) {
public void onTick(long millisUntilFinished) {
int angle = (fullSpan-millisUntilFinished) / fullSpan * 360;
drawSector(angle); //draw a transparent sector
}
public void onFinish() {
drawSector(360); //draw a transparent circle
}
}.start();
2) 我怀疑可能有更好的方法来实现这一目标。我在 Android Canvas
上没有任何经验。我可以从更有经验的人那里得到建议吗?
最佳答案
用透明颜色填充圆形图像的那个部分,对吗?
错误。
如果将透明颜色放在任何其他颜色之上,结果是您将看到底层颜色(因为根据定义透明是不可见的)。
相反,您可以删除并重新绘制填充的(插图中的黑色)形状。
或
一个可能是背景是纯色。
然后,您可以通过使用与背景完全相同的颜色来用扩展弧(插图中的灰色部分)覆盖圆来假透明/删除。
关于android - 使图像以循环方式消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25080484/