gpt4 book ai didi

Android 进度条 : Indeterminate animation without images

转载 作者:行者123 更新时间:2023-11-29 22:27:08 25 4
gpt4 key购买 nike

我想创建一个不确定的动画,它只是从一种颜色渐变到另一种颜色(脉冲,如果你愿意的话)。我不认为这应该需要使用图像,但尽管我尽了最大努力,但我不确定我是否理解如何使用类似 AlphaAnimation 的东西用Shape来完成这个。

有人可以提供一些关于如何实现这一点的见解吗?我有一种感觉,我在这里遗漏了一些非常简单的东西。 (示例总是受欢迎的!)

谢谢!

最佳答案

这是 3.0 中的一项微不足道的任务 - 您可以设置一个 ObjectAnimator 来在两个值之间更改对象(View、ColorDrawable,任何具有该属性)的“颜色”或“backgroundColor”。有关此示例,请参阅 ApiDemo 动画/BouncingBalls。

但假设您使用的是 3.0 之前的 API,则有几种方法。首先,您可以设置自己的处理程序来为您提供所需的计时事件,然后计算每个点的新颜色。

使用 AlphaAnimation 可能稍微容易一些(如果不是完全直观的话)。您真正想要的动画是百分比值,而不是淡化任何东西。因此,您无需在 View 上设置动画,而只需将其设置为从 0 到 1 的值在内部运行,然后在 onDraw() 方法中获取当前动画值并适本地设置当前颜色。

例如,这将设置并启动 alpha 动画运行一秒钟:

Transformation transform = new Transformation();
AlphaAnimation anim = new AlphaAnimation(0f, 1f);
anim.setDuration(1000);
anim.start();

然后在绘图循环中,获取当前的动画值:

long time = getDrawingTime();
anim.getTransformation(time, transform);
float elapsedFraction = transform.getAlpha();

一旦您获得了 elapsedFraction(一个介于 0 和 1 之间的值),您就可以计算出适当的中间颜色值。

上面的代码可能不完全符合你的情况,但你应该能够做类似的事情来得到你想要的。

关于Android 进度条 : Indeterminate animation without images,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com