Android-帧动画
一 帧动画
又叫做Drawable Animation。就是不同对象之间过渡事件比較快形成的动画,也是动画片的原理
二 话不多说,看Demo
以下样例是实现4张图片的切换动画效果。比較简单
1,在drawable中定义4张图片的xml以及过渡时间
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/gesture1" android:duration="200"></item>
<item android:drawable="@drawable/gesture2" android:duration="200"></item>
<item android:drawable="@drawable/gesture3" android:duration="200"></item>
</animation-list>
2,定义显示图片的layout布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/buttonAnimList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ok" />
</LinearLayout>
3。定义主Activity类
public class MyAnimationListActivity extends Activity
{
private AnimationDrawable mAnimationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//设置布局文件
setContentView(R.layout.my_animlist_layout);
//得到布局的ImageView对象
ImageView _imageView = (ImageView)findViewById(R.id.imageView);
//得到ImageView的背景
_imageView.setBackgroundResource(R.drawable.my_anim_list);
//利用AnimationDrawable来完毕帧动画
mAnimationDrawable = (AnimationDrawable)_imageView.getBackground();
//得到按钮对象
Button _buttonList = (Button)findViewById(R.id.buttonAnimList);
//设置点击事件
_buttonList.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
//动画仅仅播放一次,设置为true
mAnimationDrawable.setOneShot(true);
//动画開始
mAnimationDrawable.start();
}
});
}
}
执行程序,点击按钮。图片相互切换,且仅仅播放一次