您的位置:首页 > 其它

安卓自学笔记:16:通过Handler实现自动播放动画

2014-11-27 22:10 513 查看
Handler类的主要作用有两个:1:在新启动的线程中发送消息。2:在主线程中获取、处理消息。下面代码通过一个新的线程来周期性的修改ImageView所显示的图片,实现一个自动播放的动画。

主代码:

public class MainActivity extends Activity {
int[] images = new int[] { R.drawable.p1, R.drawable.p2, R.drawable.p3,
R.drawable.p4, R.drawable.p5 };
int imagesid = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//去掉窗口标题
ActionBar actionBar =getActionBar();
actionBar.hide();
final ImageView show = (ImageView) findViewById(R.id.show);
final Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 如果该消息是本程序所发出的
//此处填写int型的值且与Timer里的一样即可
if (msg.what == 10) {
// 动态的修改所显示的图片
/*[imagesid++ % images.length]实现图片循环
如果只做imagesid++,循环完一圈程序会报错*/
show.setImageResource(images[imagesid++ % images.length]);
}
super.handleMessage(msg);
}

};
//定义一个计时器,让该计时器周期性的执行指定任务
new Timer().schedule(new TimerTask() {

@Override
public void run() {
// 发送空消息
myHandler.sendEmptyMessage(10);

}
},0,1200);
}

}


xml:

<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/show"
/>
</LinearLayout>


运行效果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: