Day4.3--Android高级UI控件之ProgressBar的使用

来源:互联网 发布:嘀哩嘀哩网站下载软件 编辑:程序博客网 时间:2024/05/15 15:48

ProgressBar--进度条

默认情况下,如果简单的在xml布局文件中,通过<ProgressBar>标签创建出的ProgressBar是圆形进度条样式,如下图所示:


但是通常情况下,我们一般使用的是横向条形进度条,这样就需要给ProgressBar设置不同的样式,ProgressBar可选的样式如下:

1 Widget.ProgressBar.Horizontal

2 Widget.ProgressBar.Small

3 Widget.ProgressBar.Large

4 Widget.ProgressBar.Inverse

5 Widget.ProgressBar.Small.Inverse

6 Widget.ProgressBar.Large.Inverse

当我们将Widget.ProgressBar.Horizontal的样式设置到ProgressBar标签时,代码如下:

<ProgressBar         android:layout_width="match_parent"        android:layout_height="30dp"        android:progress="50"        style="?android:attr/progressBarStyleHorizontal"        />

通过style属性设置ProgressBar的样式,显示效果如下:


在MainActivity中,我们可以使用ProgressBar的setProgress(int progress)和incrementProgressBy(int diff)动态的设置ProgressBar的进度,如下所示:

pb = (ProgressBar) findViewById(R.id.progressBar_Main);pb.incrementProgressBy(1);pb.setProgress(pb.getProgress() + 10);

以上是ProgressBar的简单使用,针对ProgressBar还有另外一种情况,比如我们在看视频的时间,通常都会有一个播放进度和缓冲进度,那如何使用ProgressBar来实现这样的效果呢,就要使用到ProgressBar的二级进度条。

xml布局文件如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >        <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />        <ProgressBar        android:id="@+id/progressBar_Main"        android:layout_width="match_parent"        android:layout_height="wrap_content"        style="?android:attr/progressBarStyleHorizontal"        android:progress="50"        android:secondaryProgress="70"/>        <Button        android:id="@+id/increase_progress"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="一级菜单增加"        android:onClick="btnClicked"/>        <Button        android:id="@+id/decrease_progress"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="一级菜单减少"        android:onClick="btnClicked"/>        <Button        android:id="@+id/increase_secondaryProgress"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="二级菜单增加"        android:onClick="btnClicked"/>        <Button        android:id="@+id/decrease_secondaryProgress"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="二级菜单减少"        android:onClick="btnClicked"/></LinearLayout>

预览效果如下:


下面是MainActivity中的代码,如何动态的设置一级和二级进度:

package com.danny_jiang.day04_progressbar;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.ProgressBar;public class MainActivity extends Activity {private ProgressBar pb;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pb = (ProgressBar) findViewById(R.id.progressBar_Main);}public void btnClicked(View view) {switch (view.getId()) {case R.id.increase_progress:pb.incrementProgressBy(1);pb.setProgress(pb.getProgress() + 10);break;case R.id.decrease_progress:pb.setProgress(pb.getProgress() - 10);break;case R.id.increase_secondaryProgress:pb.setSecondaryProgress(pb.getSecondaryProgress() + 10);break;case R.id.decrease_secondaryProgress:pb.setSecondaryProgress(pb.getSecondaryProgress() - 10);break;default:break;}}}

运行效果如下图所示:


1 0
原创粉丝点击