gpt4 book ai didi

android - 对可绘制的 alpha 属性进行动画处理

转载 作者:行者123 更新时间:2023-12-02 17:01:40 24 4
gpt4 key购买 nike

我想要为 ViewGroup 的背景 Drawable 的 alpha 属性设置动画。

我使用 view.getBackground() 获取对背景可绘制对象的引用。

然后我使用以下代码( from this thread ):

    if (backgroundDrawable.getAlpha() == 0) {
ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(backgroundDrawable, PropertyValuesHolder.ofInt("alpha", 255));
animator.setTarget(backgroundDrawable);
animator.setDuration(2000);
animator.start();
} else {
ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(backgroundDrawable, PropertyValuesHolder.ofInt("alpha", 0));
animator.setTarget(backgroundDrawable);
animator.setDuration(2000);
animator.start();
}

但是动画总是从 alpha 值 0 开始。(意思是,当我想要动画到 0 时,它会立即消失,因为它从 0 到 0 进行动画)。

有谁知道我怎样才能做到这一点?

最佳答案

我相信你想要的是为你的动画设置初始值和最终值,而不仅仅是最终值,如下所示:

if (backgroundDrawable.getAlpha() == 0) {
ObjectAnimator animator = ObjectAnimator
.ofPropertyValuesHolder(backgroundDrawable,
PropertyValuesHolder.ofInt("alpha", 0, 255));
animator.setTarget(backgroundDrawable);
animator.setDuration(2000);
animator.start();
} else {
ObjectAnimator animator = ObjectAnimator
.ofPropertyValuesHolder(backgroundDrawable,
PropertyValuesHolder.ofInt("alpha", 255, 0));
animator.setTarget(backgroundDrawable);
animator.setDuration(2000);
animator.start();
}

或者,使用 drawable.getAlpha() 从当前值开始,但该方法仅从 API 19 开始可用 =/

关于android - 对可绘制的 alpha 属性进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28806879/

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