use*_*567 9 android android-ui
我想高效地添加新添加的ListView项目.我认为这很简单容易,但我弄清楚了一个问题:
我想播放TransitionDrawable动画,一旦完成 - 回放它.新项目将在一段时间内升华,然后它将与其他项目融为一体.
TransitionDrawable具有向前和向后播放动画的方法,但没有可用于同步的方法.我期望有可能为动画完成指定回调,例如:
TransitionDrawable transition = (TransitionDrawable) view.getBackground();
transition.startTransition(500, new TransitionCompleteListener(){
public void completed()
{
transition.reverseTransition(500);
}
});
Run Code Online (Sandbox Code Playgroud)
但是TransitionDrawable类不支持这样的东西.
问题是:如何播放TransitionDrawable动画,当它完成时 - 立即向后播放?我有一个使用Timer类来延迟执行动画后退部分的想法,但这个解决方案对于这么简单的事情来说看起来有点太重了.
或者也许我应该使用与TransitionDrawable不同的东西?我想避免使用Property Animations,因为我想支持更旧的设备(自从Honeycomb以来PA都是可用的).
我实际上还没有尝试过,但是我想说,您想要的是通过老式的View动画也可以实现的,准确地说是一个补间。除了直接操纵背景可绘制对象(假设您正在执行的操作)之外,还可以通过更改尺寸与行布局完全相同的View的alpha属性来创建相同的效果。然后,您可以在单个AnimationSet中同时指定“正常”动画及其反向动画,并使后者以第一个为基础开始延迟。另外,Animation提供了一个AnimationListener,您可以将其连接到第一个动画结束并在第一个动画结束时得到通知,然后开始反向播放。
查看TransitionDrawable的源代码,我还看到了使用自定义侦听器接口扩展当前实现的一些可能性。真正实现您在问题代码段中说明的模式应该不太困难。
我现在的时间有点短,所以给我留言,以防您需要更多具体的指针(例如代码片段)-然后,我将在本周末尝试寻找一些时间来帮助您。
| 归档时间: |
|
| 查看次数: |
4934 次 |
| 最近记录: |