展会信息港展会大全

Android 程式开发:(十)基本控件 —— 10.3 ProgressBar
来源:互联网   发布日期:2015-10-03 10:58:42   浏览:2044次  

导读:当执行某些正在处理的任务时,ProgressBar提供了一个可视化的反� @?纾?阍诖觲eb服务器下载数据,然后需要更新下载的状态。在这种情况下,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();

/** 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);

progressBar.setMax(200);

//---do some work in background thread---

new Thread(new Runnable()

{

public void run()

{

//?do some work here?

while (progressStatus < 100)

{

progressStatus = doSomeWork();

//?Update the progress bar?

handler.post(new Runnable()

{

public void run() {

progressBar.setProgress(progressStatus);

}

});

}

//---hides the progress bar---

handler.post(new Runnable()

{

public void run()

{

//---0 - VISIBLE; 4 - INVISIBLE; 8 - GONE---

progressBar.setVisibility(View.GONE);

}

});

}

www.2cto.com

//---do some long running work here---

private int doSomeWork()

{

try {

//---simulate doing some work---

Thread.sleep(50);

} catch (InterruptedException e)

{

e.printStackTrace();

}

return ++progress;

}

}).start();

}

}

3、F11调试。

4、当ProgressBar的进度到达50%的时候,它就会消失。

附:

ProgressBar的样式列表。

Widget.ProgressBar.Horizontal

Widget.ProgressBar.Small

Widget.ProgressBar.Large

Widget.ProgressBar.Inverse

Widget.ProgressBar.Small.Inverse

Widget.ProgressBar.Large.Inverse

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港