今天学习了Android帧动画AnimationDrawable的使用方法,以下借助一个例子,基本说明一下其基本使用方法,以便日后查看。先放出学习视频的地址:http://e-learning.51cto.com/video/127649。
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/img0" android:duration="300"/>
<item android:drawable="@drawable/img1" android:duration="100"/>
<item android:drawable="@drawable/img2" android:duration="200"/>
<item android:drawable="@drawable/img3" android:duration="100"/>
<item android:drawable="@drawable/img4" android:duration="100"/>
</animation-list>
首先我们要将要创建的帧动画的每一帧图片放到drawable文件夹下,如果分辨率较高就必须放到drawable-xhdpi 或者更高的分辨率文件夹下。然后创建和上面我所给出的一个XML文件。这个文件也是在相应的drawble文件夹下创建。android drawable 属性要填的是这一帧的图片位置,android duration是间隔时间,单位是毫秒。
package com.example.thinkpad.animation;
import android.graphics.drawable.AnimationDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
AnimationDrawable animation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
animation=(AnimationDrawable) getResources().getDrawable(R.drawable.anitmation_test);
ImageView imageView=(ImageView) findViewById(R.id.animation);
imageView.setBackground(animation);
}
public void Start(View v){
animation.setOneShot(false);
animation.start();
}
public void Stop(View v){
if(animation.isRunning()){
animation.stop();
}
}
}
首先要在主活动里建一个AnimationDrawable对象然后为其赋值(如上代码)。然后将ImageView的backgound设置为该对象。启动方法 用该对象的.start()方法了,setOneShot()是来设置是否只播放一次的,默认为true即是只播放一次,可以设置false让动画循环播放。而.stop()则是停止动画播放方法。