2015-12-28 28 views
0

我想知道是否有可能在同一个XML文件中有两个规模的动画应用一个动画应用两个动画可以说我有在相同的动画XML文件

animation.xml

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

    <alpha 
     android:fromAlpha = "1.0" 
     android:toAlpha = "0.5" 
     android:duration = "300"> 
    </alpha> 
    <scale 
     android:fromXScale = "1" 
     android:toXScale = "1.3" 
     android:fromYScale = "1" 
     android:toYScale = "1.3" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:duration = "50"> 
    </scale> 

    <scale 
     android:fromXScale = "1" 
     android:toXScale = "1.3" 
     android:fromYScale = "1" 
     android:toYScale = "1.3" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:duration = "50"> 
    </scale> 

然后在一个ImageView上应用这个动画,这样动画1然后是动画2?

,而不是创建两个不同的动画和添加动画监听我的第一个动画,当一个完成执行animation2 ...

回答

0

是的,你可以使用:

android:ordering="sequentially" 

的设置使其依次进行动画。看看this进一步的信息。

+0

已经尝试过这一点,把它应用到上文 –

+0

提到您还可以使用嵌套的'set'动画时无法正常工作。我认为,如果你读的链接,你会发现你的方式:-) –

0

这是可能的。但重要的是,你正在设置动画持续时间。你可以做这样的事情。

Animation multipleAnimaiton; 
     imageView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        multipleAnimaiton= AnimationUtils.loadAnimation(getApplicationContext(), R.anim.animation); 
        bounceAnimation.setDuration(5000); 
        v.startAnimation(bounceAnimation); 

       } 
      }); 

希望它可以帮助

0
doInBackground(Void... params) { 
     // TODO Auto-generated method stub 
     try { 
      StartAnimation1(); 
      StartAnimation2(); 
      Thread.sleep(5000); 
     } catch (InterruptedException e) { 

      e.printStackTrace(); 
     } 
     return null; 
    } 
} 

private void StartAnimation1() { 

    Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); 
    anim.reset(); 
    RelativeLayout l = (RelativeLayout) findViewById(R.id.re_lay); 
    l.clearAnimation(); 
    l.startAnimation(anim); 

    anim = AnimationUtils.loadAnimation(this, R.anim.fade_in); 
    anim.reset(); 
    ImageView iv = (ImageView) findViewById(R.id.iv_logo); 

    iv.clearAnimation(); 
    iv.startAnimation(anim); 
} 

private void StartAnimation2() { 
    Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); 
    anim.reset(); 
    RelativeLayout l = (RelativeLayout) findViewById(R.id.re_lay); 
    l.clearAnimation(); 
    l.startAnimation(anim); 

    anim = AnimationUtils.loadAnimation(this, R.anim.sequential); 
    anim.reset(); 
    ImageView iv = (ImageView) findViewById(R.id.iv_logo_name); 
    iv.clearAnimation(); 
    iv.startAnimation(anim); 
} 

希望它可以帮助

相关问题