安卓进度条组件ProgressBar的使用
ProgressBar的常用方法如下;
No. |
方法 |
类型 |
属性 |
描述 |
1 |
public ProgressBar(Context context) |
构造 |
|
创建ProgressBar对象 |
2 |
public synchronized int getMax() |
普通 |
|
取得进度条设置的最大值 |
3 |
public synchronized int getProgress() |
普通 |
|
取得当前进度 |
4 |
public synchronized int getSecondaryProgress() |
普通 |
|
取得第二进度条的当前进度 |
5 |
public final synchronized void incrementProgressBy(int diff) |
普通 |
|
设置第一进度条的每次增长值 |
6 |
public final synchronized void incrementSecondaryProgressBy(int diff) |
普通 |
|
设置第二进度条的每次增长值 |
7 |
public synchronized void setIndeterminate(boolean indeterminate) |
普通 |
android:indeterminate |
设置进度条的确定(不确定)状态 |
8 |
public synchronized void setMax(int max) |
普通 |
android:max |
设置进度增长的最大值 |
9 |
public synchronized void setProgress(int progress) |
普通 |
android:progress |
设置当前进度 |
10 |
public synchronized void setSecondaryProgress(int secondaryProgress) |
普通 |
android:secondaryProgress |
设置第二进度条的当前进度 |
11 |
public void setVisibility(int v) |
普通 |
android:visibility |
设置进度条的可见状态 |
<RelativeLayout 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: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" > <ProgressBar//第一个进度条 android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="34dp" android:max="100" android:progress="0" android:secondaryProgress="70" android:visibility="invisible" /> <ProgressBar//第二个进度条 android:id="@+id/progressBar2" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/progressBar1" android:layout_centerHorizontal="true" android:layout_marginTop="52dp" android:max="100" android:progress="50" android:secondaryProgress="70" android:visibility="invisible"/> <ProgressBar//第三个进度条 android:id="@+id/progressBar3" style="?android:attr/progressBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/progressBar2" android:layout_centerHorizontal="true" android:layout_marginTop="49dp" android:visibility="invisible"/> <Button//定义按钮 android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/progressBar2" android:layout_alignParentBottom="true" android:layout_marginBottom="74dp" android:text="Button" /> </RelativeLayout>
package com.example.Progressbar1; import android.R.id; import android.R.integer; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; public class MainActivity extends Activity { private ProgressBar mybar1, mybar2, mybar3; private Button mybut = null; private static final int STOP = 1;//设置标记 private static final int START = 2;//设置标记 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_main); this.mybar1 = (ProgressBar) super.findViewById(R.id.progressBar1); this.mybar3 = (ProgressBar) super.findViewById(R.id.progressBar3); this.mybar2 = (ProgressBar) super.findViewById(R.id.progressBar2); this.mybut = (Button) super.findViewById(R.id.button1); this.mybut.setOnClickListener(new change()); } private class change implements OnClickListener {//设置监听方法 @Override public void onClick(View v) { MainActivity.this.mybar1.setSecondaryProgress(0); MainActivity.this.mybar2.setVisibility(View.VISIBLE); MainActivity.this.mybar1.setVisibility(View.VISIBLE); MainActivity.this.mybar3.setVisibility(View.VISIBLE); MainActivity.this.mybar1.setMax(120); MainActivity.this.mybar2.setMax(120); MainActivity.this.mybar2.setProgress(0); MainActivity.this.mybar1.setProgress(0); new Thread(new Runnable() {//匿名内部类实现线程操作 @Override public void run() { int count = 0; for (int i = 0; i < 10; i++) { count = (i + 1) * 20; try { Thread.sleep(500); if (i == 6) {//如果线程的长度为6*20=120则线程停止 Message msg = new Message(); msg.what = MainActivity.STOP; MainActivity.this.handler.sendMessage(msg); } else {//传入线程的值设置进度值 Message msg = new Message(); msg.arg1 = count; msg.what = MainActivity.START; MainActivity.this.handler.sendMessage(msg); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); } } private Handler handler = new Handler() {//实例化Handler类 @Override public void handleMessage(Message msg) {//处理得到消息 switch (msg.what) {//停止显示,设置progressBar不可见 case STOP: mybar1.setVisibility(View.GONE); mybar2.setVisibility(View.GONE); mybar3.setVisibility(View.GONE); Thread.currentThread().interrupt(); break; case START://设置现成的值 if (!Thread.currentThread().isInterrupted()) { mybar1.setProgress(msg.arg1); mybar2.setProgress(msg.arg1); mybar3.setProgress(msg.arg1); } break; default: break; } } }; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。