本文实例讲述了android中market的loading效果实现方法。分享给大家供大家参考。具体如下:
在android中,要实现loading效果,一般情况下都使用progressdialog控件。apidemos/src/com/example/android/apis/view/progressbar3.java 提供两个demo:
仔细看了android market,发现却是不一样的,请看截图:
那到底如何实现呢?首先,我们创建一个布局文件,
res/layout/fullscreen_loading_indicator.xml, 其内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?xml version= "1.0" encoding= "utf-8" ?>
<linearlayout
xmlns:android= "http://schemas.android.com/apk/res/android"
android:gravity= "center_vertical|center_horizontal"
android:orientation= "horizontal"
android:id= "@+id/fullscreen_loading_style"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
>
<progressbar
android:layout_gravity= "center_vertical"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
style= "?android:attr/progressbarstylesmall"
/>
<textview
android:id= "@+id/current_action"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:layout_marginleft= "5.0dip"
android:text= "@+string/loading"
/>
</linearlayout>
|
然后在main.xml 把它include 进来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?xml version= "1.0" encoding= "utf-8" ?>
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android"
android:orientation= "vertical" android:layout_width= "fill_parent"
android:layout_height= "fill_parent" >
<linearlayout android:orientation= "vertical"
android:id= "@+id/main_info"
android:visibility= "gone"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent" >
<textview android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:text= "abc" ></textview>
</linearlayout>
<linearlayout android:orientation= "vertical"
android:id= "@+id/main_loading"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent" >
<include android:visibility= "visible"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
layout= "@layout/fullscreen_loading_style" />
</linearlayout>
</linearlayout>
|
主程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package com.tymx.fullloading;
import android.app.activity;
import android.os.bundle;
import android.os.handler;
import android.os.message;
import android.view.view;
import android.widget.linearlayout;
public class myfullloading extends activity {
/** called when the activity is first created. */
private linearlayout mloadinglayout;
@override
public void oncreate(bundle savedinstancestate) {
super .oncreate(savedinstancestate);
setcontentview(r.layout.main);
final handler handler = new handler(){
@override
public void handlemessage(message msg) {
// todo auto-generated method stub
super .handlemessage(msg);
if (msg.what== 1 ){
mloadinglayout = (linearlayout)findviewbyid(r.id.fullscreen_loading_style);
mloadinglayout.setvisibility(view.gone);
linearlayout mmain = (linearlayout)findviewbyid(r.id.main_info);
mmain.setvisibility(view.visible);
}
}
};
new thread(){
public void run(){
for ( int i= 0 ;i< 1000 ;i++){
system.out.print(i+ "" );
}
message msg = handler.obtainmessage( 1 , "flash" );
handler.sendmessage(msg);
}
}.start();
}
}
|
运行的效果为:
希望本文所述对大家的android程序设计有所帮助。