Android 控件之ProgressBar进度条

[日期:2011-09-23] 来源:Linux社区 作者:jianchibuxie5

ProgressBar是Android的进度条。体验效果

源码下载

Android 控件之ProgressBar进度条下载地址:

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /pub/Android源码集锦/2011年/9月/Android 控件之ProgressBar进度条源码/

下面详细介绍ProgressBar

一、说明

  在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。这种模式常用于应用程序使用任务的长度是未知的。

二、XML重要属性

    Android:progressBarStyle:默认进度条样式

    Android:progressBarStyleHorizontal:水平样式

三、重要方法

    getMax():返回这个进度条的范围的上限

    getProgress():返回进度

    getSecondaryProgress():返回次要进度

    incrementProgressBy(int diff):指定增加的进度

    isIndeterminate():指示进度条是否在不确定模式下

    setIndeterminate(boolean indeterminate):设置不确定模式下

    setVisibility(int v):设置该进度条是否可视

四、重要事件

    onSizeChanged(int w, int h, int oldw, int oldh):当进度值改变时引发此事件

五、实例

1.布局文件

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

<LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">

<ProgressBar Android:id="@+id/progress_horizontal"
style="?Android:attr/progressBarStyleHorizontal"
Android:layout_width="200dip"
Android:layout_height="wrap_content"
Android:max="100"
Android:progress="50"
Android:secondaryProgress="75" />

<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="默认进度条" />

<LinearLayout
Android:orientation="horizontal"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">

<Button Android:id="@+id/decrease"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="减少" />

<Button Android:id="@+id/increase"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="增加" />

</LinearLayout>

<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="自定义进度条" />

<LinearLayout
Android:orientation="horizontal"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">

<Button Android:id="@+id/decrease_secondary"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="第二减少" />

<Button Android:id="@+id/increase_secondary"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="第二增加" />

</LinearLayout>

</LinearLayout>

2.Java代码

package wjq.WidgetDemo;

import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.view.Window;
import Android.widget.Button;
import Android.widget.ProgressBar;

public class ProgressBarDemo extends Activity {

/* (non-Javadoc)
* @see Android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.probarpage);
setProgressBarVisibility(true);

final ProgressBar progressHorizontal = (ProgressBar) findViewById(R.id.progress_horizontal);
setProgress(progressHorizontal.getProgress() * 100);
setSecondaryProgress(progressHorizontal.getSecondaryProgress() * 100);

Button button = (Button) findViewById(R.id.increase);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
progressHorizontal.incrementProgressBy(1);
// Title progress is in range 0..10000
setProgress(100 * progressHorizontal.getProgress());
}
});

button = (Button) findViewById(R.id.decrease);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
progressHorizontal.incrementProgressBy(-1);
// Title progress is in range 0..10000
setProgress(100 * progressHorizontal.getProgress());
}
});

button = (Button) findViewById(R.id.increase_secondary);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
progressHorizontal.incrementSecondaryProgressBy(1);
// Title progress is in range 0..10000
setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());
}
});

button = (Button) findViewById(R.id.decrease_secondary);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
progressHorizontal.incrementSecondaryProgressBy(-1);
// Title progress is in range 0..10000
setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());
}
});

}

}

更多相关文章

  1. Android核心功能
  2. android 悬浮控件-仿360手机助手应用详情页
  3. Android中Gravity中的一些值都是些什么意思
  4. Android-控件架构
  5. android自定义按钮控件样式
  6. Android有用代码片段(三)
  7. Android(安卓)控件Edittext详解
  8. Android——ListView控件(Android(安卓)Studio)
  9. shape基本用法及全部属性定义

随机推荐

  1. Android高级界面组件(1)
  2. Xamarin Android(安卓)所见即所得问题
  3. android:padding和android:layout_margin
  4. android 量产软件改动信息(持续更新)
  5. adb shell 命令详解
  6. 如何使用Android(安卓)Studio把自己的And
  7. Android的生命周期
  8. android开发文档中的一个小错误
  9. Android(安卓)NDK学习笔记11-JNI异常处理
  10. Android的Message机制(简单小结)