您的位置:首页 > 产品设计 > UI/UE

【Android 开发】:UI控件之 ProgressBar 进度条的使用

2013-06-04 22:26 866 查看
    在程序开发中,ProgressBar提供了可以向用户展示当前任务的进度。

1. 在学习之前,我们先了解一些相关知识,查看api文档 progressBar。一般最常用的方法有以下几点:

getMax()  得到最大刻度
getProgress() 得到刻度
setMax(int max) 设置最大刻度
setProgress(int progress) 设置刻度
setSecondaryProgress(int secondaryProgress) 设置第二刻度
setVisibility(int v) 设置是否可见

2. 下面我们就来练习一下刻度条的使用方法

1. 布局文件

<?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" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="小圆形进度条" />

<ProgressBar
style="?android:attr/progressBarStyleSmallTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="中型圆形进度条" />

<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="大型圆形进度条" />

<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="水平进度条" />

<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="30" />

<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:max="100"
android:progress="30"
android:secondaryProgress="60" />

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="增加进度" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="减小进度" />
</LinearLayout>

</LinearLayout>
2. Java代码

package com.android.progressdemo;

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

public class ProgressDemo extends Activity implements OnClickListener {

private ProgressBar progressBar;
private Button button1, button2;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

/*
* 如何设置窗口有刻度的效果
* 注意requestWindowFeature()方法必须写在setContentView()方法之前
*/
requestWindowFeature(Window.FEATURE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
setProgressBarVisibility(true);
setProgressBarIndeterminateVisibility(true);
setProgress(3500);

initComponenet();
button1.setOnClickListener(this);
button2.setOnClickListener(this);

}

private void initComponenet() {

progressBar = (ProgressBar) findViewById(R.id.progressbar);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
progressBar.setProgress((int) (progressBar.getProgress() * 1.2));
progressBar.setSecondaryProgress((int) (progressBar.getProgress() * 1.2));
break;

case R.id.button2:
progressBar.setProgress((int) (progressBar.getProgress() * 0.8));
progressBar.setSecondaryProgress((int) (progressBar.getProgress() * 0.8));
break;
}

}
}

2. 程序运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: