当前位置:操作系统 > 安卓/Android >>

Android 程式开发:(十)基本控件 —— 10.3 ProgressBar

当执行某些正在处理的任务时,ProgressBar提供了一个可视化的反馈。例如,你在从web服务器下载数据,然后需要更新下载的状态。在这种情况下,ProgressBar就是一个很好的选择。下面的例子,展示如何去使用ProgressBar。

1、创建一个工程,BasicViews2。

2、main.xml中的代码。

[html] 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
 
<ProgressBar android:id="@+id/progressbar" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content" /> 
 
</LinearLayout> 
3、Basic2Activity.java中的代码。
[java] 
package net.learn2develop.BasicViews2; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.view.View; 
import android.widget.ProgressBar; 
 
public class BasicViews2Activity extends Activity { 
    static int progress; 
    ProgressBar progressBar; 
    int progressStatus = 0; 
    Handler handler = new Handler(); 
 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
         
        progress = 0; 
        progressBar = (ProgressBar) findViewById(R.id.progressbar); 
         
        //---do some work in background thread--- 
        new Thread(new Runnable() 
        { 
            public void run() 
            { 
                //?do some work here? 
                while (progressStatus < 10) 
                { 
                    progressStatus = doSomeWork(); 
 
                } 
 
                //---hides the progress bar--- 
                handler.post(new Runnable() 
                { 
                    public void run() 
                    { 
                        //---0 - VISIBLE; 4 - INVISIBLE; 8 - GONE--- 
                        progressBar.setVisibility(View.GONE); 
                    } 
                }); 
            } 
 
            //---do some long running work here--- 
            private int doSomeWork()  
            { 
                try { 
                    //---simulate doing some work--- 
                    Thread.sleep(500); 
                } catch (InterruptedException e) 
                { 
                    e.printStackTrace(); 
                } 
                return ++progress; 
            } 
        }).start(); 
    } 

4、F11调试,会看见ProgressBar的动画,5秒之后,动画消失。

 \


接下来展示如何自定义ProgressBar的样式。
1、使用之前的例子,修改main.xml。
[html] 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
 
<ProgressBar android:id="@+id/progressbar" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content" 
    style="@android:style/Widget.ProgressBar.Horizontal" /> 
 
</LinearLayout> 
2、Basic2Activity.java中的代码。

[java] 
package net.learn2develop.BasicViews2; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.view.View; 
import android.widget.ProgressBar; 
 
public class BasicViews2Activity extends Activity { 
    static int progress; 
    ProgressBar progressBar; 
    int progressStatus = 0; 
    Handler handler = new Handler();

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,