初学Android,使用Drawable资源之使用AnimationDrawable资源(十七)

来源:互联网 发布:js设置div 的id 编辑:程序博客网 时间:2024/05/21 07:56

这次学学怎么使用动画资源,AnimationDrawable,同样要定义一个相关的xml动画文件,要放在路径/res/anmi下,当创建一个Android应用时,默认不会创建该文件夹,需要自己手动创建.

动画分为逐帧动画(像电影一样,一张一张的播放)和补间动画(平移,旋转,缩放,位移),

关于动画的内容还是有点多,这次我只学一点,就是怎么定义和使用动画资源

补间动画可以有4个动作

alpha: 设置透明度的改变

scale:    设置图片进行缩放改变

translate: 设置图片进行位移变换

rotate:设置图片进行旋转

下面以补间动画为例,根元素为<set .../>,在路径/res/anmi下定义一个动画文件my_anim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/linear_interpolator">    <!-- 缩放变换 -->    <scale android:fromXScale="1.0"        android:toXScale="1.4"        android:fromYScale="1.0"        android:toYScale="0.6"        android:pivotX="50%"        android:pivotY="50%"        android:fillAfter="true"        android:duration="2000" />    <!-- 定义位移变换 -->    <translate android:fromXDelta="10"        android:toXDelta="130"        android:fromYDelta="30"        android:toYDelta = "-80"        android:duration="2000" /></set>
下面是主界面main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <ImageView        android:id="@+id/image"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/fengjing" />    <Button        android:id="@+id/bn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Button" /></LinearLayout>
在代码中调用动画资源

package WangLi.Resource.AnimationDrawableTest;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.AnimationUtils;import android.widget.Button;import android.widget.ImageView;public class AnimationDrawableTest extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        final ImageView image = (ImageView)findViewById(R.id.image);        final Animation anim = AnimationUtils.loadAnimation(this, R.anim.my_anim);        //设置动画结束后保留结束状态        anim.setFillAfter(true);        Button bn = (Button)findViewById(R.id.bn);        bn.setOnClickListener(new OnClickListener(){        public void onClick(View arg0)        {        image.startAnimation(anim);        }        });    }}
动画开始前


点击按钮,动画结束后,图片得到缩放,并且位移




原创粉丝点击