今天我们主要来学习ProgressBar的用法,就是我们通常所说的进度条,有水平状的和车轮状的。其中水平状的我们可以用来标注一些确定事件的状态,你可以通过incrementProgressBy() setProgress()方法来设定进度条的增量和在某一状态时的事件。而车轮状的ProgressBar对于那些不确定时间的状态是很有作用的。

  下面来介绍和它相关的一系列的xml属性的值。

android:animationResolution 设定动画的毫秒数,并须为整形。

android:indeterminate 允许使用不确定的模式。

 

android:indeterminateBehavior 定义在不确定的模式下完成时发生的动作。

 

android:indeterminateDuration 不确定模式下进度条所持续的时间。

 

android:max 进度条的最大值。

 

android:secondaryProgress 次进度条的值在0和max值之间。

 

以上这些,我是参考api翻译的,请以官方api为准。

 

  下面我们来实现一个小的列子,具体效果如下:

 

 

实现代码有:

 

1.main.xml

 

<?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/progress_bar"
style
="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content"
android:visibility
="gone"/>


<Button
android:id="@+id/commit"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:text
="@string/btn_name"/>


</LinearLayout>


 

2.strings.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">ProgressBarDemo</string>
<string name="btn_name">开始</string>


</resources>

 

 

3.ProgressBarDemoActivity.java

 

 

 1 package com.yangnet.activity;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.os.Handler;
6 import android.view.View;
7 import android.view.View.OnClickListener;
8 import android.widget.Button;
9 import android.widget.ProgressBar;
10
11 public class ProgressBarDemoActivity extends Activity
12 {
13 /** Called when the activity is first created. */
14 private static final int PROGRESS = 100;
15 private ProgressBar mProgress;
16 private int mProgressStatus = 0;
17 private Button mCommit;
18
19 @Override
20 protected void onCreate(Bundle icicle)
21 {
22 super.onCreate(icicle);
23 setContentView(R.layout.main);
24 mProgress = (ProgressBar) findViewById(R.id.progress_bar);
25 mCommit = (Button) findViewById(R.id.commit);
26 mCommit.setOnClickListener(new OnClickListener()
27 {
28
29 @Override
30 public void onClick(View v)
31 {
32 if (mProgressStatus==0)
33 {
34 mProgress.setVisibility(ProgressBar.VISIBLE);
35 }else if (mProgressStatus<PROGRESS)
36 {
37 mProgress.setProgress(mProgressStatus);
38 mProgress.setSecondaryProgress(mProgressStatus*2+10);
39 }
40 else {
41 mProgress.setVisibility(View.GONE);
42 }
43 mProgressStatus+=10;
44 }
45 });
46
47 }
48 }

 

说明:由于时间关系,没有注释,有问题的童鞋,同样可以跟帖,我们一块讨论,一起学习,共同进步。

-----------------------yangnet独创------------------------------

 

posted on 2011-11-28 20:22  yangnet  阅读(452)  评论(0)    收藏  举报