进度条(ProgressBar)
下面详细介绍ProgressBar
一、说明
在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。这种模式常用于应用程序使用任务的长度是未知的。
二、XML重要属性
android:progressBarStyle:默认进度条样式
android:progressBarStyleHorizontal:水平样式
三、重要方法
getMax():返回这个进度条的范围的上限
getProgress():返回进度
getSecondaryProgress():返回次要进度
incrementProgressBy(int diff):指定增加的进度
isIndeterminate():指示进度条是否在不确定模式下
setIndeterminate(boolean indeterminate):设置不确定模式下
setVisibility(int v):设置该进度条是否可视
四、重要事件
onSizeChanged(int w, int h, int oldw, int oldh):当进度值改变时引发此事件
package com.zyq.main; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.ProgressBar; public class MainActivity extends Activity { //声明ProgressBar对象 private ProgressBar ProgressBar01; private ProgressBar ProgressBar02; private Button Button01; protected static final int GUI_STOP_NOTIFIER=0x108; protected static final int GUI_THREADING_NOTIFIER=0x109; public int intCounter=0; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_PROGRESS); setProgressBarVisibility(true); setContentView(R.layout.main); //取得ProgressBar ProgressBar01=(ProgressBar)findViewById(R.id.ProgressBar01); ProgressBar02=(ProgressBar)findViewById(R.id.ProgressBar02); Button01=(Button)findViewById(R.id.Button01); ProgressBar01.setIndeterminate(false); ProgressBar02.setIndeterminate(false); Button01.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //设置ProgressBar为可见状态 ProgressBar01.setVisibility(View.VISIBLE); ProgressBar02.setVisibility(View.VISIBLE); //设置ProgressBar的最大值 ProgressBar01.setMax(100); //设置ProgressBar的当前值 ProgressBar01.setProgress(0); ProgressBar02.setProgress(0); //通过线程来改变ProgressBar的值 new Thread(new Runnable() { public void run() { try { for(int i=0;i<10;i++) { intCounter=(i+1)*20; Thread.sleep(1000); if(i==4) { Message message=new Message(); message.what=MainActivity.GUI_STOP_NOTIFIER; break; } else { Message message=new Message(); message.what=MainActivity.GUI_THREADING_NOTIFIER; MainActivity.this.myMessagehandel.sendMessage(message); } } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } }); } Handler myMessagehandel=new Handler() { public void handleMessage(Message msg) { switch (msg.what) { //ProgressBar已经是最大值 case MainActivity.GUI_STOP_NOTIFIER: ProgressBar01.setVisibility(View.GONE); ProgressBar02.setVisibility(View.GONE); Thread.currentThread().interrupt(); break; case MainActivity.GUI_THREADING_NOTIFIER: if(!Thread.currentThread().isInterrupted()) { //改变ProgressBar的当前值 ProgressBar01.setProgress(intCounter); ProgressBar01.setProgress(intCounter); //设置标题栏中前景的一个进度条进度值 setProgress(intCounter*100); //设置标题栏中后面的一个进度条值 setSecondaryProgress(intCounter*100); } break; default: break; } super.handleMessage(msg); } }; }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ProgressBar android:id="@+id/ProgressBar01" style="?android:attr/progressBarStyleHorizontal" android:layout_width="300dip" android:layout_height="wrap_content" android:visibility="gone" /> <ProgressBar android:id="@+id/ProgressBar02" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleLarge" android:max="100" android:progress="50" android:secondaryProgress="70" android:visibility="gone" /> <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始" /> </LinearLayout>
更多相关文章
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- android 进度条ProgressBar样式设置
- Android(安卓)实现本地更新并在更新完成后打开
- Android(安卓)解决hellocharts与ViewPager滑动冲突以及有且仅有
- android progressBar 自定义 进度颜色
- [置顶] AndroidUI组件4- ProgressBar、SeekBar、ImageView、TabH
- Android进度条的使用,多线程登录或下载
- Android中用seekbar控件控制歌曲的进度
- android进度条修改教程(颜色,高度)