微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

原文地址:https://www.jb51.cc/android/318120.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐