Android快速开发 动画系列(一) 之 TranslateAnimation(平移动画)

本文介绍了Android中的TranslateAnimation类,用于控制View对象的位置变化。文章详细讲解了构造方法的基本语法,并提供了参数说明,包括fromXDelta、toXDelta、fromYDelta和toYDelta。此外,还通过代码实例演示了如何创建并应用一个简单的平移动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TranslateAnimation类:位置变化动画类

TranslateAnimation类是Android系统中的位置变化动画类,用于控制View对象的位置变化,该类继承于Animation类。TranslateAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是TranslateAnimation构造方法。

【基本语法】

public TranslateAnimation (float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
## 参数说明 ##
fromXDelta:位置变化的起始点X坐标。

toXDelta:位置变化的结束点X坐标。

fromYDelta:位置变化的起始点Y坐标。

toYDelta:位置变化的结束点Y坐标。

【实例演示】下面通过代码来演示如何设置一个简单的位置变化动画效果。

public class firstActivity extends Activity {  

@Override  
public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  

    final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
    Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
    Button btn2=(Button)findViewById(R.id.button2);  
    final Animation translateAnimation=new TranslateAnimation(0,300,0,300);                                                                 //位置变化动画效果  

    btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  

        @Override  
        public void onClick(View v) {  
            // TODO Auto-generated method stub  
            translateAnimation.setDuration(3000);               //设置动画持续时间  
            translateAnimation.setRepeatCount(2);               //设置重复次数  
            translateAnimation.setRepeatMode(Animation.REVERSE);    //反方向执行  
            image.setAnimation(translateAnimation);             //设置动画效果  
            translateAnimation.startNow();                      //启动动画  
        }  
    });  
    btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  

        @Override  
        public void onClick(View v) {  
            // TODO Auto-generated method stub  
            translateAnimation.cancel();                        //取消动画执行  
        }  
    });  
}  
}  

在这段代码中,首先通过TranslateAnimation构造方法创建了一个位置变化的动画对象。然后,在第一个按钮监听器中设置了动画的持续时间、重复次数和重复模式等,然后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将看到图片沿如图9.7所示的路径往返运动。

package comdsfasdafsa.sdf;

import android.app.Activity;

public class TestActivity extends Activity {  

public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  

    final ImageView image=(ImageView)findViewById(R.id.Image); //ImageView对象  
    Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
    Button btn2=(Button)findViewById(R.id.button2);  
    final Animation translateAnimation=new TranslateAnimation(0,200,0,200);                                                                 //移动动画效果  

    btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  

        public void onClick(View v) {  
            // TODO Auto-generated method stub  
            translateAnimation.setDuration(3000);               //设置动画持续时间  
            translateAnimation.setFillAfter (true);             //保留在终止位置  
            translateAnimation.setFillEnabled(true);            //使能填充效果  
            image.setAnimation(translateAnimation);             //设置动画效果  
            translateAnimation.startNow();                      //启动动画  
        }  
    });

    btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  

        public void onClick(View v) {  
            // TODO Auto-generated method stub  
            translateAnimation.cancel();                        //取消动画执行  
        }  
    });  
}  
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值