在该页面中,有两种进度条的样式:条形和圆形,当我点击开始按钮的时候,进度条出现。然后我们手动点击增加按钮,每次增加10(共100);当进度条的值大于100时,加载完成,进度条消失;此时如果点击重新开始按钮,用户将可以继续点击增加按钮为进度条控制。
目标效果如下图所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@drawable/bg" >
<LinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始加载"
android:textSize="24dp"
android:textColor="#FFFFFF"/>
<ProgressBar
android:id="@+id/hor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:max="100"
style="@android:style/Widget.ProgressBar.Horizontal"/>
LinearLayout>
<LinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始加载"
android:textSize="24dp"
android:textColor="#FFFFFF"/>
<ProgressBar
android:id="@+id/circle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:max="100"
style="?android:attr/progressBarStyleLarge"/>
LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始"
android:textSize="24dp"
android:textColor="#FFFFFF"/>
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="增加"
android:textSize="24dp"
android:textColor="#FFFFFF"
android:layout_marginLeft="20dp"/>
<Button
android:id="@+id/restart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="重新开始"
android:textSize="24dp"
android:textColor="#FFFFFF"
android:layout_marginLeft="20dp"/>
LinearLayout>
LinearLayout>
package com.example.processbardemo;
import android.os.Bundle;
import android.app.Activity;
import android.content.pm.FeatureInfo;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends Activity
{
ProgressBar hor=null;
ProgressBar circle=null;
Button start,add,restart;
TextView t1,t2;
int status=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取所有的控件
hor=(ProgressBar) findViewById(R.id.hor);
circle=(ProgressBar) findViewById(R.id.circle);
start=(Button) findViewById(R.id.start);
add=(Button) findViewById(R.id.add);
restart=(Button) findViewById(R.id.restart);
t1=(TextView) findViewById(R.id.t1);
t2=(TextView) findViewById(R.id.t2);
//先设置开始看到的界面:两个进度条不可见,只有一个开始按钮
hor.setVisibility(View.GONE);
circle.setVisibility(View.GONE);
add.setVisibility(View.GONE);
restart.setVisibility(View.GONE);
//为开始按钮添加动作事件
start.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
//两个文本框显示正在加载,两个进度条可见,增加按钮出现,开始按钮消失
t1.setText("正在加载");
t2.setText("正在加载");
hor.setVisibility(View.VISIBLE);
circle.setVisibility(View.VISIBLE);
add.setVisibility(View.VISIBLE);
start.setVisibility(View.GONE);
}
});
//为增加按钮设置相应的动作事件
add.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
if(status==0)
{
//先为水平进度条的第二进度开始赋值
hor.setSecondaryProgress(status+10);
}else if(status<=100)
{
hor.setProgress(status);
hor.setSecondaryProgress(status);
circle.setProgress(status);
}else
{
//此时,进度条加载完成,变成重新开始的页面
t1.setText("加载完成");
t2.setText("加载完成");
hor.setVisibility(View.GONE);
circle.setVisibility(View.GONE);
add.setVisibility(View.GONE);
restart.setVisibility(View.VISIBLE);
status=0;
}
status+=10;
}
});
//为重新开始按钮添加相应的动作事件
restart.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
//跳转到增加页面
add.setVisibility(View.VISIBLE);
restart.setVisibility(View.GONE);
t1.setText("正在加载");
t2.setText("正在加载");
hor.setProgress(0);
circle.setProgress(0);
hor.setVisibility(View.VISIBLE);
circle.setVisibility(View.VISIBLE);
hor.setProgress(0);
circle.setProgress(0);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}