我怎样才能永远重复过渡?

CPl*_*lus 14 android transition

我的转换看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/divider"/>
    <item android:drawable="@drawable/divider_active"/>

</transition>
Run Code Online (Sandbox Code Playgroud)

和代码看起来像这样:

View divider = v.findViewById(R.id.divider);
if (divider != null) {
  TransitionDrawable transition = (TransitionDrawable) divider.getBackground();
  transition.startTransition(2000);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我不知道如何永远重复这种转变,所以我可以创造一个脉冲效果.

编辑:

为了清楚起见:在创建视图(listitem)时执行代码,因此循环不是解决方案.

小智 5

我知道这个问题很老,但我想帮助其他用户提供其他可能的解决方案.

AnimationDrawable当你有超过2张图像时,这是正确的方法,但是如果你只有两张图像,你也可以使用TransitionDrawable,正如你所说的那样.我会告诉你如何做到这一点.

在第一次,我将在我的使用计时器onCreate().

Timer MyTimerImage = new Timer();
Run Code Online (Sandbox Code Playgroud)

然后,我将创建一个MyTimerTask类(在父Activity类中)来运行我自己的代码.

public class MyTimerTask extends TimerTask {
    LinearLayout myIDLinearLayout= (LinearLayout) findViewById(R.id.myIDofLinearLayout);

    TransitionDrawable MyTrans = (TransitionDrawable) myIDLinearLayout.getBackground();

    int i = 0;
    @Override
    public void run() {
        runOnUiThread(new Runnable(){

            @Override
            public void run() {
                i++;
                if (i%2==0) { // 
                   MyTrans.startTransition(myTransitionTimeinms);
                }else{
                   MyTrans.reverseTransition(myTransitionTimeinms);
                }

            }});
    }

}
Run Code Online (Sandbox Code Playgroud)

最后,我将创建一个MyTimerTask变量来运行我的计时器.此代码低于Timer()的创建.

MyTimerTask MyTimer = new MyTimerTask();
MyTimerImage.schedule(MyTimer, myDelay, myPeriod);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,schedule方法有3个参数:第一个表示我们的TimerTask任务,第二个是以ms为单位运行TimerTask的延迟,第三个表示我们想要运行代码的每个周期.

不要忘记将TransitionFile.xml文件包含在您的android:background.

我希望它对某人有所帮助.


Nol*_*esh 1

我认为你应该使用AnimationDrawable而不是TransitionDrawable:http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

  • 与 TransitionDrawable 不同,AnimationDrawable 不在其项目之间设置动画,有什么想法可以解决这个问题吗? (8认同)