<?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,即进度条。这个自定义组件允许开发者根据应用的UI风格进行个性化配置,如颜色、大小、动画效果等。 首先,我们要创建一个新的XML布局文件,用于定义自定义...
例如,创建一个水平进度条,可以在`res/drawable`目录下创建`custom_determinate.xml`: ```xml <solid android:color="@android:color/white" /> <!-- 背景颜色 --> <corners android:radius="5dp" /> <!--...
ProgressBar分圆形进度条和水平进度条 我这里就分享下如何设置圆形进度条的颜色吧,希望对大家会有帮助。 源码如下: 布局文件代码: <ProgressBar android:id=@+id/progressbar android:layout_width=wrap_...
此为Android ProgressBar 简单进度条的实现及示例下载源码,基本思路是:将模拟任务分成大小为100个的数组,任务完成度--默认为0,状态完成度默认也为0,然后构造一个线程用于显示消息,然后定义dowork()函数,完成...
本篇文章将深入探讨如何在WPF中实现自定义的圆形进度条,并基于`wpf Progressbar`进行样式修改。 首先,我们需要理解WPF的样式和模板系统。`ControlTemplate`是WPF中用于定义控件外观的关键组件,它允许我们完全...
本项目"progressbar彩色进度条类.zip"提供了一个Qt框架下的C++实现,允许开发者创建具有颜色功能的进度条。下面我们将深入探讨这个类的可能实现及其相关知识点。 首先,Qt是一个跨平台的C++应用程序开发框架,广泛...
在Android开发中,ProgressBar是一个非常重要的组件,它用于显示进度状态,可以是圆形或水平的。这个组件在用户等待操作完成时提供了良好的用户体验,比如在下载、上传、解压等耗时操作中常见。本篇文章将深入探讨...
1. 绘制自定义进度条:要创建带有动画的横向ProgressBar,我们可能需要继承自ProgressBar并重写`onDraw()`方法。在这里,我们可以使用Canvas对象进行自定义绘图,包括进度条的颜色、宽度、边角半径等。 2. 动画逻辑...
"Smooth ProgressBar"则是一种增强型的进度条,它提供了平滑、连续的动画效果,使得用户界面更具吸引力和反馈感。在Windows Forms或WPF应用中,这种效果常常用于长时间运行的任务,以提高用户体验。 在标题和描述中...
标题中的“ProgressBar(进度条,升级版)”指的是一个在VB6.0环境下开发的自定义控件,它是一个经过改进的进度条组件。这个组件在原有的基础上进行了优化和增强,提供了更多的可设置属性,以满足用户更丰富的界面展示...
标题中的“ProgressBar(进度条)”指的是在用户界面中显示任务执行进度的一种图形组件。在VB6.0(Visual Basic 6.0)中,ProgressBar是一个常见的控件,它允许开发者为应用程序添加可视化反馈,让用户知道后台操作的...
在描述中提到的"ProgressBar长方形进度条,item背景当进度条",这可能是指开发者想要在列表项(item)中使用一个长方形的进度条作为背景,来展示每个item的完成度或者加载状态。这需要对ProgressBar的样式进行定制,...
"ProgressBar0.2.2.0实时进度条控件"可能是某个第三方库提供的特定版本,专门用于实现更高效或功能更丰富的进度条显示。 在.NET框架下,通常我们使用System.Windows.Forms命名空间下的ProgressBar控件。这个控件...
在需要用到进度条显示后台运算进度的时候,如果同时进行算法运算以及界面进度条显示的话,那往往是算法计算结束了进度条才显示走条,无法同时进行,如果用到BackgroundWorker的话,就可以完美解决这个问题。
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 ...
本压缩包"jqeuery-plugin\progressbar(进度条).rar"包含了用于创建动态进度条效果的jQuery插件,这在网页应用中非常常见,例如在文件上传、数据加载或处理过程显示进度。 进度条是用户界面中的一个重要元素,它可以...
在Android SDK中,系统提供了ProgressBar类来实现进度条效果,其中HorizontalProgressBar是专门用于显示水平进度条的子类。默认情况下,HorizontalProgressBar有一条填充部分(表示已完成的进度)和一条空缺部分...
原生的ProgressBar分为两种类型:水平进度条(HorizontalProgressBar)和旋转指示器(IndeterminateProgressBar)。水平进度条显示一个从左到右填充的条形,而旋转指示器则显示一个不断旋转的图标,通常用于表示未知...
ProgressBar控件有多种样式,包括水平进度条、圆形进度条、直线进度条等。在Android应用程序中, ProgressBar控件可以用于展示下载进度、上传进度、安装进度等。 知识点二:直线进度条的实现方法 在Android ...
"Android编程实现类似于圆形ProgressBar的进度条效果" Android编程实现类似于圆形ProgressBar的进度条效果是Android开发中常见的需求。圆形ProgressBar可以用来表示下载进度、加载进度、播放进度等各种进度信息。...