<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ProgressBar android:id="@+id/progressBar" style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btn_pb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btn_pb" /> </LinearLayout>
ProgressBar让用户感觉程序与他们有交互,所以我觉得设计好一个好的进度条会调整用户对程序的操作感,我也是初步学习,现在就将笔记整理一下。
Java Code
package cn.qiuzhping.module1; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; public class PB extends Activity { private int dataLength = 1000; private int[] data = new int[dataLength];// 该程序模拟填充长度为1000的数组 int index = 0;// 数组下标 int step = 0;// 记录ProgressBar的完成进度 Handler mHandler = null;// 用于线程之间交互 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pb); final ProgressBar progrssBar = (ProgressBar) findViewById(R.id.progressBar); progrssBar.setMax(dataLength); mHandler = new Handler() {// 创建一个负责更新的进度的Handler @Override public void handleMessage(Message msg) { if (msg.what == 0x111) {// 根据定义的标志 表明消息是由该程序发送的,然后更新进度条。 progrssBar.setProgress(step);// 主进度 progrssBar.setSecondaryProgress(step + 50);// 次进度 Log.i("mHandler", " progressBar step = " + step); } } }; final Button startBtn = (Button) findViewById(R.id.btn_pb); startBtn.setOnClickListener(new startBtnListener()); } public void timeconsuming() {// 耗时计算 while (step < dataLength) { // Log.i("startBtnListener","timeconsuming"); step = doIndex();// 获取耗时操作的完成百分比 Message m = new Message();// 发送消息到Handler m.what = 0x111;// 给消息定一个标志,让handler接受多个message的时候, // 进行区分给与对应操作的what // 是用户自定义的消息代码,这样接受者可以了解这个消息的信息每个handler各自包含自己的消息代码.所以不用担心自定义的消息跟其他handlers有冲突。 mHandler.sendMessage(m);// 发送消息 } } class startBtnListener implements OnClickListener {// 设置startBtn的监听器 @Override public void onClick(View arg0) { index = 0; step = 0; new Thread() {// 通过设置匿名内部类,启动线程来执行任务 public void run() { timeconsuming(); Log.i("startBtnListener", "timeconsuming()"); } }.start(); } } public int doIndex() {// 模拟一个耗时的操作 int result = (int) (Math.random() * dataLength); data[index++] = result;// 为数组元素赋值 try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } Log.i("doIndex", "index=" + index + "||result=" + result); return index; } }
这样就能简单的使用Android自带样式的水平进度条,比较直观的看到效果。
相关推荐
自定义圆形ProgressBar(进度条),支持各种属性和配置。对应的文章:http://www.cnblogs.com/tianzhijiexian/p/3854346.html
使用ProgressBar实现进度条,设置进度条显示风格。以及自定义进度条样式
win8 小点进度条,自定义圆形进度条,wpf Progressbar进度条样式更改
从网上整理的c# ProgressBar 光滑进度条的源码,呵呵,大家看看吧~vc#2005的~
Android中使用ProgressBar实现进度条,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/70557872
progressbar彩色进度条class类,包含progressbar.h头文件和progressbar.cpp源文件
此为Android ProgressBar 简单进度条的实现及示例下载源码,基本思路是:将模拟任务分成大小为100个的数组,任务完成度--默认为0,状态完成度默认也为0,然后构造一个线程用于显示消息,然后定义dowork()函数,完成...
ProgressBar长方形进度条,item背景当进度条
ProgressBar原始进度条与简单的自定义进度条的使用
jqeuery-plugin\progressbar(进度条).rar
带动画的横向ProgressBar
ProgressBar0.2.2.0实时进度条控件
在需要用到进度条显示后台运算进度的时候,如果同时进行算法运算以及界面进度条显示的话,那往往是算法计算结束了进度条才显示走条,无法同时进行,如果用到BackgroundWorker的话,就可以完美解决这个问题。
第 8 章 ProgressBar(进度条)组件学习要点:1.加载方式2.属性列表3.事件列表4.方法列表主讲教师:李炎恢本课程由北风网和瓢城 Web 俱乐部提
一款自己编写的进度条(VB6.0),可以对多种属性进行设定,你可以下载试一下,内含测试程序。
MaterialProgressBar Material Design ProgressBar with consistent appearance on Android 4.0 . Why MaterialProgressBar? Consistent appearance on Android 4.0 . Correct tinting across platforms. Able to ...
jQuery progressbar进度条插件提示进度条进度百分比数据
自己编写的进度条(VB6.0)升级啦,可以对多种属性进行设定,又添加了一些新的可设置属性,你可以下载试一下,内含测试程序。
C# progressBar进度条绘制文字显示百分比
ProgressBar分圆形进度条和水平进度条 我这里就分享下如何设置圆形进度条的颜色吧,希望对大家会有帮助。 源码如下: 布局文件代码: <ProgressBar android:id=@+id/progressbar android:layout_width=wrap_...