android应用开发详解(八)----------------常用组件之进度条(续)

来源:互联网 发布:上海php招聘 编辑:程序博客网 时间:2024/06/07 01:04

撑不住的时候,可以对自己说声“我好累”,但不要对自己说“我不行”。


进度条有很多种:对话框进度条、标题栏进度条、水平进度条

一、对话框进度条

(1)覆盖Activity的onCreateDialog()方法,并在其中创建对话框

(2)调用Activity的showDialog()方法,显示进度条对话框

二、标题栏进度条

(1)调用Activity的requestWindowFeature()方法,获得进度条

(2)调用Activity的setProgressBarIndeterminateVisibility()方法显示进度条

三、水平进度条

(1)在布局文件中生命ProgressBar

(2)在Activity中获得ProgressBar实例

(3)调用ProgressBar的incrementProgressBy()方法增加或减少进度


1、工程目录


2、Test_ProgressBar_Activity.java

package com.example.teat_progressbar;import android.os.Bundle;import android.app.Activity;import android.app.Dialog;import android.app.ProgressDialog;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.ProgressBar;public class Test_ProgressBar_Activity extends Activity {private Button myButton, xianshibtn, yincangbtn, increasebtn, decreasebtn;ProgressBar myProgressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//下面这句request..必须在setContentView()前面requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);setContentView(R.layout.test__progress_bar);myButton = (Button) findViewById(R.id.button01);myButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubshowDialog(0);}});xianshibtn = (Button) findViewById(R.id.xianshiButton);yincangbtn = (Button) findViewById(R.id.yincangButton);xianshibtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubsetProgressBarIndeterminateVisibility(true);}});yincangbtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubsetProgressBarIndeterminateVisibility(false);}});increasebtn = (Button) findViewById(R.id.increasebutton);decreasebtn = (Button) findViewById(R.id.decreasebutton);myProgressBar = (ProgressBar) findViewById(R.id.progressBar01);increasebtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubmyProgressBar.incrementProgressBy(1);}});decreasebtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubmyProgressBar.incrementProgressBy(-1);}});}@Overrideprotected Dialog onCreateDialog(int id) {// TODO Auto-generated method stubProgressDialog dialog = new ProgressDialog(this);dialog.setTitle("测试对话框");dialog.setIndeterminate(true);dialog.setMessage("程序正在加载请稍候!");dialog.setCancelable(true);return dialog;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.test__progress_bar_, menu);return true;}}


3、布局文件test_progressbar.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:orientation="vertical" >    <LinearLayout        android:id="@+id/linearLayout01"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical" >        <Button            android:id="@+id/button01"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="@android:color/holo_blue_dark"            android:text="对话框进度条" />    </LinearLayout>    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:text="----------------------------" />    <LinearLayout        android:id="@+id/linearLayout02"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <Button            android:id="@+id/xianshiButton"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="显示" />        <Button            android:id="@+id/yincangButton"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="隐藏" />    </LinearLayout>    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:text="----------------------------" />    <LinearLayout        android:id="@+id/linearLayout03"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical" >        <ProgressBar            android:id="@+id/progressBar01"            style="?android:attr/progressBarStyleHorizontal"            android:layout_width="200dip"            android:layout_height="wrap_content"            android:max="100"            android:progress="50" />        <Button            android:id="@+id/increasebutton"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="增加" />        <Button            android:id="@+id/decreasebutton"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="减少" />    </LinearLayout></LinearLayout>

4、结果演示


【注意】程序中说明性文字太少,以后需要改进。

               requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)这句必须在setContentView之前

0 0