读书人

应用Handler+Thread实现Loading.开始界

发布时间: 2012-06-30 17:20:12 作者: rapoo

使用Handler+Thread实现Loading...开始界面循环提示动画

??? 突然想实现类似于软件启动时的Loading...循环提示信息,写了一下基本实现了这个功能,但由于是动画效果就不截图了,下面是代码:

???

package com.wly.summary.mechanism;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.TextView;/** * 使用Thread + Handler实现Loading...循环动画效果 * 1、在onCreate中实例化线程对象,并实例化一个Handler对象,同时实现Handler对象中的handleMessage()方法 * 2、新建一个Thread继承类MyThread,在构造方法中实现外部Handler对象的引用(即第一步中实例化的那个Handler) * ,在线程的run()方法中不断的发送Message,第一步中实例化的Handler对象就可以使用传进来的Message来修改TextView的值了 * @author WLY */public class Loading extends Activity {TextView textView;int i = 1;String info;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);textView = new TextView(this);info = "loading";textView.setText(info);textView.setTextSize(30);setContentView(textView);MyThread myThread = new MyThread(myHandler);myThread.start();}Handler myHandler = new Handler() {@Overridepublic void handleMessage(Message msg) { //实现handlerMessage来获取传入的Message对象super.handleMessage(msg);for(int j=0;j<(msg.what % 6);j++) {info += ".";}textView.setText(info);info = "loading";}};class MyThread extends Thread {Handler myHandler = new Handler();public MyThread() {}public MyThread(Handler handler) { //使用构造方法将该Handler对象引入myHandler = handler;}@Overridepublic void run() {while(true) {Message msg = new Message();msg.what = i;myHandler.sendMessage(msg); //向得到的Handler对象发送消息try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}i ++;}}}}

?

读书人网 >移动开发

热点推荐