Android上最简单的动画是顺序展示一系列的drawable。这被称为drawable动画。创建一个drawable动画,你要创建一个XML文件,该文件列出了组成动画的drawable。Android随后将会按照顺序展示这些drawable,从而创建动画。你可以定义动画每一帧的持续时间以及动画是否循环播放还是只播放一次。
1、创建3个不同颜色的圆形:红,黑,绿。其中红色代码circle_red.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<!-- 颜色 为红色-->
<solid android:color="#FF0000" />
<!-- 大小 -->
<size
android:height="100dp"
android:width="100dp" />
</shape>
2、现在创建一个drawable动画。这是一个单次的动画,也就是说它运行一次即终止(android:oneshot:"true")。设置动画持续时间(duration)为250ms。代码animationlist.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true"
android:visible="true" >
<item
android:drawable="@drawable/circle_black"
android:duration="250"/>
<item
android:drawable="@drawable/circle_red"
android:duration="250"/>
<item
android:drawable="@drawable/circle_green"
android:duration="250"/>
</animation-list>
Android:visible属性指定动画的drawable在动画开始之前可见。
3、创建一个简单的布局,该布局只含有一个源,设为动画的ImageView。activity_main.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="center"
android:src="@drawable/animationlist" >
</ImageView>
4、创建活动,并为布局设置内容视图。在图片视图上设置一个touch listener,当点击时启动动画。由于动画是单次的,所以在随后点击时需要调用stop()然后再调用start()。MainActivity.java代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv = (ImageView)findViewById(R.id.image_view);
iv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
ImageView iv2 = (ImageView)v;
AnimationDrawable ad = (AnimationDrawable)iv2.getDrawable();
ad.stop();
ad.start();
return true;
}
});
}
}
5、运行程序,点击屏幕动画如下:
源码下载:http://download.csdn.net/detail/yegucheng2618/8242597
不错的参考资料:http://www.360doc.com/content/13/0102/22/6541311_257754535.shtml