简单的平移属性动画和补间动画区别

属性动画和补间动画的不同是 属性动画移动化的形式改变属性 而补间动画结果并没有改变属性。

首先就是对页面进行布局,下面设置两个按钮 就是补间动画和属性动画进行对比。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


   <ImageView
       android:id="@+id/iv"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_centerInParent="true"
       android:src="@drawable/ic_launcher"
       android:onClick="onClick"
      
       />


   <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:text="Button1" 
       android:onClick="onClick01"/>


   <Button
       android:id="@+id/button2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_toRightOf="@+id/button1"
       android:text="Button2"
       android:onClick="onClick02" />


</RelativeLayout>

下面进行代码的编译。

public class MainActivity extends Activity {


private ImageView ivo;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivo=(ImageView)findViewById(R.id.iv);

}

    //  点击图片可以鉴别属性改咩改变
public void onClick(View v){
Toast.makeText(this, "hao ", 0).show();
}

//这个方法是点击按钮时补间动画平移的实现方式
public void onClick01(View v){

TranslateAnimation ta =new TranslateAnimation(0, -200, 0, 0);

//  0 -200   表示 沿x轴方向 从0 移动到-200

// 0,0       表示沿y轴方向从0 移动到0
ta.setDuration(3000);
ta.setFillAfter(true);
ivo.startAnimation(ta);
}

//这个方法是点击按钮时属性动画平移的实现方式
public void onClick02(View v){

// ivo  是你设置的动画对象

// translationX  是属性  就是沿着x轴方向

// 0  , 200  是平移的距离

// setDuration(3000) 持续时间  3000 为3秒                                                                                                                                                                                                                                                                                                                                         
ObjectAnimator.ofFloat(ivo,"translationX", 0,-200).setDuration(3000).start();


}

由于补间动画存在一定的不足,所以有时候有些效果只能用属性动画来实现。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值