android动画效果

沈墨?_? 发布于 2012/03/26 16:28
阅读 4K+
收藏 1

我想按钮运行三个动画效果,为什么只出来2个?

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.TranslateAnimation;
import android.widget.Button;

public class TranslateText001Activity extends Activity implements AnimationListener {
 private Button btn;
 private TranslateAnimation ta1,ta2,ta3;
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  btn=(Button) findViewById(R.id.btn1);

  ta1=new TranslateAnimation(0, 200, 0, 0);
  ta1.setDuration(1000);
  ta1.setAnimationListener(this);

  btn.setOnClickListener(new OnClickListener() {

   public void onClick(View v) {
    // TODO Auto-generated method stub
    btn.startAnimation(ta1);
   }
  });
 }
 public void onAnimationEnd(Animation animation) {

  ta2=new TranslateAnimation(200, 200, 0, 200);
  ta2.setDuration(1000);
  btn.startAnimation(ta2);
  ta3=new TranslateAnimation(200,0, 200 ,0);
  ta3.setDuration(1000);
  btn.startAnimation(ta3);
 }
 public void onAnimationRepeat(Animation animation) {
  // TODO Auto-generated method stub

 }
 public void onAnimationStart(Animation animation) {
  // TODO Auto-generated method stub


 }
}

加载中
0
z
zhanglq
你第三个动画好像什么都没做啊,从200,0到200,0当然不会有任何变化了,你也可以用animationset集合来同时做N个动画。
沈墨?_?
沈墨?_?
那个参数是x从200到0,y从200到0。
沈墨?_?
沈墨?_?
现在的效果是X从0平移到200,然后直接跳到第三个动画执行从200,200到初始位置,第二个动画没执行。。。
0
z
zhanglq
你同时做两个平移动画,只能执行一个,你可以等第二个结束再运行第三个
沈墨?_?
沈墨?_?
@zhanglq : 哦哦 。。。谢啦!
z
zhanglq
@沈墨?_? : 你后两个全是平移动画,怎么可能同时开始呢?你想要什么效果啊,如果你想三个动画一个一个的做,你可以设置监听啊,一个一个的做
沈墨?_?
沈墨?_?
用什么语句结束第二个动画呀?
0
另类天使
另类天使

android动画这块弱爆了,你只能监听第一个平移动画结束,再接着执行第二个平移动画。

animationset集合的动画都是同时进行的,例如旋转+移动

返回顶部
顶部