今天我们主要来学习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独创------------------------------
浙公网安备 33010602011771号