android - 使图像以循环方式消失

标签 android android-canvas drawable countdowntimer

我有一个圆圈的图像。我想首先将它显示给用户。

CountDownTimeronTick() 方法中,我希望它以循环方式逐个扇区平滑地消失。下面是一张图片,它解释了我想要更好的方式:

frames

灰色区域实际上是透明的。

CountDownTimeronFinish() 中,图像应该完全消失。

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/

相关文章:

android - 如何将 TextView 和图像结合起来并返回图像?

android - 在位图上绘图?

android - 本地化和可绘制对象

android - 无法找到 com/razorpay/Y_$B$$5 的外部类 com/razorpay/Y_$B$

android - ADB 无法识别我的 Redmi Note 设备

Android Paint对象内存效率

android - 你如何使用一个加载占位符,它是一个带有图像加载器(如 Glide、Picasso 等)的动画微调器?

android - Jelly Bean 通知中的两种状态操作按钮

java - 异步任务无法更新 GUI

android - 如何让特定的调用响铃而其他调用静音?