gpt4 book ai didi

android - TransitionDrawable : automatically reverse transition once it completes

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:04 27 4
gpt4 key购买 nike

我想突出显示新添加的 ListView 项目,效果很好。我认为这很简单,但我偶然发现了一个问题:

我想播放 TransitionDrawable 动画,一旦它完成 - 倒带。新项目将高亮显示片刻,然后与其余项目融合。

TransitionDrawable 有向前和向后播放动画的方法,但没有可用于同步的方法。我希望有可能为动画完成指定回调,例如:

 TransitionDrawable transition = (TransitionDrawable) view.getBackground();
transition.startTransition(500, new TransitionCompleteListener(){
public void completed()
{
transition.reverseTransition(500);
}
});

但是 TransitionDrawable 类不支持类似的东西。

问题是:如何播放 TransitionDrawable 动画,并在它结束时立即向后播放?我有一个想法,即使用 Timer 类来延迟动画向后部分的执行,但对于这样一个简单的事情,这个解决方案看起来有点太重了。

或者也许我应该使用与 TransitionDrawable 不同的东西?我想避免使用属性动画,因为我想支持旧设备(自 Honeycomb 以来 PA 可用)。

最佳答案

我自己还没有真正尝试过,但我想说你的目标也可以通过老式的 View 动画实现,tween准确地说。不是直接操纵背景可绘制对象(假设这就是您当前正在做的事情),您可以通过更改与行布局具有完全相同尺寸的 View 的 alpha 属性来创建相同的效果。然后,您可以在单个 AnimationSet 中同时指定“正常”动画及其反向动画,并让后者以基于第一个的延迟开始。或者,Animation 提供一个 AnimationListener您可以 Hook 并在第一个动画结束时收到通知,然后开始反转。

查看 TransitionDrawable 的源代码,我还看到了使用自定义监听器接口(interface)扩展当前实现的一些可能性。实际实现您在问题的代码 fragment 中说明的模式应该不会太难。

我现在时间有点紧,所以如果您需要更具体的指示(例如代码 fragment ),请给我留言 - 然后我会在本周末抽出时间来帮助您。

关于android - TransitionDrawable : automatically reverse transition once it completes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8681761/

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