android – TransitionDrawable:一旦完成就自动反向转换

我想高效地添加添加的ListView项目.我觉得这简单易行,但我弄错了一个问题:

我想播放TransitionDrawable动画,一旦完成 – 回放它.新项目将在一段时间内升级,然后它将与其他项目融合.

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

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

但是TransitionDrawable类不支持这样的东西.

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

或者也许我应该使用与TransitionDrawable不同的东西?我想避免使用Property Animations,因为我想支持更旧的设备(自从Honeycomb以来PA都是可用的).

解决方法

我自己还没有真正尝试过,但是我会说你的目标也可能是老式的View动画,准确的是 tween.而不是直接操作背景drawable(假设你正在做的事情),你可以通过改变与行布局具有完全相同尺寸的View的alpha属性来创建相同的效果.然后,您可以在单个AnimationSet中指定“正常”动画及其反向,并使后者以基于第一个的延迟开始.或者,动画提供了一个 AnimationListener,您可以在第一个动画结束时连接并获得通知,然后开始反转.

查看TransitionDrawable的源代码,我还看到了使用自定义侦听器接口扩展当前实现的一些可能性.实际上实现你在问题的代码片段中说明的模式应该不难.

我现在的时间有点短,所以如果你需要更具体的指针(例如代码片段),请给我发一条评论 – 然后我会试着找一些时间来帮助你.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...