首页 > 代码库 > 通过xml文件来设置动画

通过xml文件来设置动画

alpha.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"        android:startOffset="200"        android:duration="1000"/></set>

 

rotate.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <rotate         android:fromDegrees="0"        android:toDegrees="-360"        android:pivotX="50%p"        android:pivotY="50%"        android:duration="1000"/></set>

 

scale.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <scale        android:fromXScale="1.0"        android:toXScale="0"        android:fromYScale="1.0"        android:toYScale="0"        android:pivotX="50%"        android:pivotY="50%"        android:duration="1000"/></set>

 

translate.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate         android:fromXDelta="50%"        android:toXDelta="100%"        android:fromYDelta="50%"        android:toYDelta="200%"        android:duration="2000"/></set>

 

MainActivity.java

package com.kale.anim;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.AnimationSet;import android.view.animation.AnimationUtils;import android.view.animation.RotateAnimation;import android.view.animation.ScaleAnimation;import android.view.animation.TranslateAnimation;import android.widget.ImageView;public class MainActivity extends Activity {    ImageView iV;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iV = (ImageView)findViewById(R.id.imageView);    }            public void buttonListener(View v) {        Animation anim = null;        switch (v.getId()) {        case R.id.alpha_button:            anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.alpha);            break;        case R.id.rotate_button:            anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate);            break;        case R.id.scale_button:            anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.scale);            break;        case R.id.translate_button:            anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate);            break;        default:            break;        }            //设置开始动画        iV.startAnimation(anim);    }}

 

通过工具类就能加载xml文件,这样就能使用xml文件了。最后贴上xml的界面文件。

<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="${relativePackage}.${activityClass}" >    <LinearLayout        android:id="@+id/linearLayout1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true"        android:layout_marginTop="28dp"        android:orientation="vertical" >        <Button            android:id="@+id/alpha_button"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:onClick="buttonListener"            android:text="透明度改变" />        <Button            android:id="@+id/rotate_button"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:onClick="buttonListener"            android:text="旋转动画" />        <Button            android:id="@+id/scale_button"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:onClick="buttonListener"            android:text="缩放动画" />        <Button            android:id="@+id/translate_button"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:onClick="buttonListener"            android:text="移动动画" />    </LinearLayout>    <ImageView        android:id="@+id/imageView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/linearLayout1"        android:layout_centerHorizontal="true"        android:layout_marginTop="56dp"        android:src="@drawable/ic_launcher" /></RelativeLayout>

 

关于动画速率设置。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true">

……
</set>

 

example:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_interpolator"    android:shareInterpolator="true">    <alpha         android:fromAlpha="1.0"        android:toAlpha="0"        android:startOffset="200"        android:duration="1000"/></set>

 

代码中可以这样设置:

        AnimationSet set = new AnimationSet(true);        set.setInterpolator(new DecelerateInterpolator());

 

通过xml文件来设置动画