通过新建一个线程,然后在线程里每隔一定时间用Handler发送特定消息。
主线程里通过Handler来更新UI,这里是使用ImageView的setAlpha和invalidate来更新
public class ColaBox extends Activity {
ImageView imageview;
TextView textview;
int alpha = 255;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageview = (ImageView) this.findViewById(R.id.ImageView01);
textview = (TextView) this.findViewById(R.id.TextView01);
imageview.setAlpha(alpha);
new Thread(new Runnable() {
@Override
public void run() {
initApp();
boolean isFirst =true;
while (alpha>0) {
try {
if (isFirst) {
isFirst = false;
Thread.sleep(1000);
}
else {
Thread.sleep(50);
}
Message msg = new Message();
msg.what = MSG_UPDATE;
mHandler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Message msg = new Message();
msg.what = MSG_STARTACTIVITY;
mHandler.sendMessage(msg);
}
}).start();
}
private static final int MSG_UPDATE = 0;
private static final int MSG_STARTACTIVITY = 1;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_UPDATE:
alpha-=3;
if (alpha >=0){
imageview.setAlpha(alpha);
imageview.invalidate();
}
break;
case MSG_STARTACTIVITY:
startActivity(new Intent(ColaBox.this, Frm_Addbills.class));
ColaBox.this.finish();
break;
default:
super.handleMessage(msg);
break;
}
}
};
public void initApp(){
BilldbHelper billdb=new BilldbHelper(this);
billdb.FirstStart();
billdb.close();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.v("cola", "keycode=" + keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
Log.v("ColaBox", "ColaBox end ...");
return true;
}
return false;
}
}