Android 控件之ProgressBar进度条

[日期:2011-09-23] 来源:Linux社区 作者:jianchibuxie5
Android 控件之ProgressBar进度条_第1张图片

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控件的属性
  4. Android——ListView控件(Android Studio)
  5. Android 控件Edittext详解
  6. 从零开始学android:Android中的基本控件(上)
  7. Android ListView:实现item内部控件的点击事件
  8. android: 静态XML和动态加载XML混合使用,以及重写Layout控件

随机推荐

  1. 「一周答疑」2018年的第16周
  2. Java面试通关要点 汇总集【最终版】
  3. 「一周答疑」2018年的第17周
  4. 「一周答疑」2018年的第11周
  5. 第18周 | 「后端圈」与你一起精进17个问
  6. 如何有效提升你的后端技能
  7. 第19周 | 「后端圈」与你一起精进 5 个问
  8. 常用性能监控指南
  9. hdfs写流程
  10. 异步「背压机制」,谈 RxJava 2.x 解决策略