实例一
来源:互联网 发布:matlab求矩阵特征向量 编辑:程序博客网 时间:2024/04/26 11:07
启动界面的主要功能就是显示一幅启动图像,后台进行系统初始化.
如果是第一次使用本程序,需要初始化本程序的sqlite数据库,建库,建Table,初始化账目数据.
如果不是第一次使用,就进入登记收支记录界面.
在这儿我来使用一个小技巧,就是在程序初始化完成后,让图片淡出,然后显示下一个界面.
开始我准备使用一个timer来更新图片的alpha值,后来程序抛出异常Only the original thread that created a view hierarchy can touch its views.
这才发现android 的ui 控件是线程安全的.
这里需要我们在主线程外,再开一个线程更新界面上的图片.可以使用imageview.invalidate
关于如何另开一个线程更新界面的相关代码如下.
开始我准备使用一个timer来更新图片的alpha值,后来程序抛出异常Only the original thread that created a view hierarchy can touch its views.
这才发现android 的ui 控件是线程安全的.
这里需要我们在主线程外,再开一个线程更新界面上的图片.可以使用imageview.invalidate
关于如何另开一个线程更新界面的相关代码如下.
//给主线程发送消息更新imageview
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
imageview.setAlpha(alpha);
imageview.invalidate();
}
};
};
new Thread(new Runnable() {
public void run() {
while (b < 2) {
try {
//延时2秒后,每50毫秒更新一次imageview
if (b == 0) {
Thread.sleep(2000);
b = 1;
} else {
Thread.sleep(50);
}
updateApp();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
e.printStackTrace();
}
}
}
}).start();
}).start();
public void updateApp() {
alpha -= 5;//每次减少alpha 5
if (alpha <= 0) {
b = 2;
Intent in = new Intent(this, com.cola.ui.Frm_Addbills.class);
startActivity(in);//启动下个界面
}
b = 2;
Intent in = new Intent(this, com.cola.ui.Frm_Addbills.class);
startActivity(in);//启动下个界面
}
mHandler.sendMessage(mHandler.obtainMessage());
}
}
通过这段代码,我们能够理解android 里面如何对ui视图进行更新.
下篇文章我们来看看sqlite的使用.如何初始化程序.
关于handler,invalidate 的用法,
- 实例一
- 实例一
- 入门一程序实例
- 线程实例一
- oracle statspack实例(一)
- Licensing实例(一)
- 存储过程实例(一)
- CSS实例编(一)
- Ajax入门实例(一)
- Popup对象实例 (一)
- smarty实例(一)
- Java GUI 实例一
- Ajax实例(一)
- 初级C++ 实例 (一)
- 单实例 举例一
- boost:pool 一实例
- RDF 应用实例 一
- C++ 实例《一》
- ExtJs学习笔记6
- Eclipse链接MySQL数据库
- 转载一篇--干烧失恋鲫鱼
- error LNK2001: unresolved external symbol _AVIFileExit@0
- VC combobox 使用大全
- 实例一
- 财经日记:抛战略储备石油
- 实例二
- 利用Visual C++打造自己的IE浏览器
- 实例三
- 实例三
- Windows Phone 7 编成之- 6.2从源页面传递数据到目的页面
- SIFT参考资料
- Java2平台Applet数字签名详细实现步骤