`
zhenping
  • 浏览: 82898 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

ProgressBar 水平进度条(初步)

阅读更多

 

<?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(进度条)

    本篇文章将深入探讨如何自定义一个圆形的ProgressBar,即进度条。这个自定义组件允许开发者根据应用的UI风格进行个性化配置,如颜色、大小、动画效果等。 首先,我们要创建一个新的XML布局文件,用于定义自定义...

    使用ProgressBar实现进度条,设置进度条显示风格。以及自定义进度条样式

    例如,创建一个水平进度条,可以在`res/drawable`目录下创建`custom_determinate.xml`: ```xml &lt;solid android:color="@android:color/white" /&gt; &lt;!-- 背景颜色 --&gt; &lt;corners android:radius="5dp" /&gt; &lt;!--...

    Android编程之ProgressBar圆形进度条颜色设置方法

    ProgressBar分圆形进度条和水平进度条 我这里就分享下如何设置圆形进度条的颜色吧,希望对大家会有帮助。 源码如下: 布局文件代码: &lt;ProgressBar android:id=@+id/progressbar android:layout_width=wrap_...

    Android ProgressBar 简单进度条的实现及示例下载.rar

    此为Android ProgressBar 简单进度条的实现及示例下载源码,基本思路是:将模拟任务分成大小为100个的数组,任务完成度--默认为0,状态完成度默认也为0,然后构造一个线程用于显示消息,然后定义dowork()函数,完成...

    自定义圆形进度条,wpf Progressbar进度条样式修改

    本篇文章将深入探讨如何在WPF中实现自定义的圆形进度条,并基于`wpf Progressbar`进行样式修改。 首先,我们需要理解WPF的样式和模板系统。`ControlTemplate`是WPF中用于定义控件外观的关键组件,它允许我们完全...

    progressbar彩色进度条类.zip

    本项目"progressbar彩色进度条类.zip"提供了一个Qt框架下的C++实现,允许开发者创建具有颜色功能的进度条。下面我们将深入探讨这个类的可能实现及其相关知识点。 首先,Qt是一个跨平台的C++应用程序开发框架,广泛...

    Android中使用ProgressBar实现进度条

    在Android开发中,ProgressBar是一个非常重要的组件,它用于显示进度状态,可以是圆形或水平的。这个组件在用户等待操作完成时提供了良好的用户体验,比如在下载、上传、解压等耗时操作中常见。本篇文章将深入探讨...

    带动画的横向ProgressBar

    1. 绘制自定义进度条:要创建带有动画的横向ProgressBar,我们可能需要继承自ProgressBar并重写`onDraw()`方法。在这里,我们可以使用Canvas对象进行自定义绘图,包括进度条的颜色、宽度、边角半径等。 2. 动画逻辑...

    c# ProgressBar 光滑进度条 源码

    "Smooth ProgressBar"则是一种增强型的进度条,它提供了平滑、连续的动画效果,使得用户界面更具吸引力和反馈感。在Windows Forms或WPF应用中,这种效果常常用于长时间运行的任务,以提高用户体验。 在标题和描述中...

    ProgressBar(进度条,升级版)

    标题中的“ProgressBar(进度条,升级版)”指的是一个在VB6.0环境下开发的自定义控件,它是一个经过改进的进度条组件。这个组件在原有的基础上进行了优化和增强,提供了更多的可设置属性,以满足用户更丰富的界面展示...

    ProgressBar(进度条)

    标题中的“ProgressBar(进度条)”指的是在用户界面中显示任务执行进度的一种图形组件。在VB6.0(Visual Basic 6.0)中,ProgressBar是一个常见的控件,它允许开发者为应用程序添加可视化反馈,让用户知道后台操作的...

    ProgressBar长方形进度条,item背景当进度条

    在描述中提到的"ProgressBar长方形进度条,item背景当进度条",这可能是指开发者想要在列表项(item)中使用一个长方形的进度条作为背景,来展示每个item的完成度或者加载状态。这需要对ProgressBar的样式进行定制,...

    ProgressBar实时进度条控件

    "ProgressBar0.2.2.0实时进度条控件"可能是某个第三方库提供的特定版本,专门用于实现更高效或功能更丰富的进度条显示。 在.NET框架下,通常我们使用System.Windows.Forms命名空间下的ProgressBar控件。这个控件...

    C#中WPF举例实现ProgressBar控件进度条实现一边后台运算同时界面上显示进度

    在需要用到进度条显示后台运算进度的时候,如果同时进行算法运算以及界面进度条显示的话,那往往是算法计算结束了进度条才显示走条,无法同时进行,如果用到BackgroundWorker的话,就可以完美解决这个问题。

    Android代码-Material风格ProgressBar圆形进度条

    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

    本压缩包"jqeuery-plugin\progressbar(进度条).rar"包含了用于创建动态进度条效果的jQuery插件,这在网页应用中非常常见,例如在文件上传、数据加载或处理过程显示进度。 进度条是用户界面中的一个重要元素,它可以...

    水平进度条

    在Android SDK中,系统提供了ProgressBar类来实现进度条效果,其中HorizontalProgressBar是专门用于显示水平进度条的子类。默认情况下,HorizontalProgressBar有一条填充部分(表示已完成的进度)和一条空缺部分...

    ProgressBar自定义进度条

    原生的ProgressBar分为两种类型:水平进度条(HorizontalProgressBar)和旋转指示器(IndeterminateProgressBar)。水平进度条显示一个从左到右填充的条形,而旋转指示器则显示一个不断旋转的图标,通常用于表示未知...

    Android ProgressBar直线进度条的实例代码

    ProgressBar控件有多种样式,包括水平进度条、圆形进度条、直线进度条等。在Android应用程序中, ProgressBar控件可以用于展示下载进度、上传进度、安装进度等。 知识点二:直线进度条的实现方法 在Android ...

    Android编程实现类似于圆形ProgressBar的进度条效果

    "Android编程实现类似于圆形ProgressBar的进度条效果" Android编程实现类似于圆形ProgressBar的进度条效果是Android开发中常见的需求。圆形ProgressBar可以用来表示下载进度、加载进度、播放进度等各种进度信息。...

Global site tag (gtag.js) - Google Analytics