`
IT阿狸
  • 浏览: 67126 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android——进度条的演示

阅读更多

还是使用Android 2.3.3版本。

 

一、界面


 

 

 

二、main.xml

<?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" >

    <TextView
        android:id="@+id/txtInfo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="2dip"
        android:gravity="center_horizontal"
        android:text="进度条演示案例"
        android:textSize="18sp" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dip"
        android:visibility="gone" >
    </ProgressBar>

    <Button
        android:id="@+id/startButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dip"
        android:text="开始" >
    </Button>

</LinearLayout>

 

 

三、Activity类

package org.e276.progress;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;

/**
 * Handler类 有2个队列,1个线程队列,1个消息队列
 * 
 * @author miao
 * 
 */
public class ProgressBarDemoActivity extends Activity {

	private ProgressBar progressBar;// 进度条
	private Button startButton;// 按钮
	private TextView txtInfo;// 文本框

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// 进度条
		progressBar = (ProgressBar) findViewById(R.id.progressBar);
		startButton = (Button) findViewById(R.id.startButton);
		txtInfo = (TextView) findViewById(R.id.txtInfo);

		// 为控件设置监听器
		startButton.setOnClickListener(new ProgressBarOnClickListener());
	}

	// 使用匿名内部类来充血Handler当中的handlerMessage()方法
	Handler handler = new Handler() {
		@Override
		// 处理消息,与sendMessage的执行是异步的
		public void handleMessage(Message msg) {
			// 设置进度条的刻度
			progressBar.setProgress(msg.arg1);
			// 更新文本显示
			txtInfo.setText("当前进度" + msg.arg1 + "%");
			if (msg.arg1 >= 100) {
				// 将线程对象从队列中移除
				handler.removeCallbacks(updateThread);
				txtInfo.setText("加载完成");
				// 按钮可用
				startButton.setEnabled(true);
			} else {
				// 处理完当前的消息,再放一个线程到队列中
				handler.post(updateThread);
				//如果想把进度的速度调慢,就这样:handler.postDelayed(updateThread,200);
			}
		}
	};

	// 声明一线程
	Runnable updateThread = null;

	// 另一个线程,该类使用匿名内部类的方式进行声明
	class UpdateThread implements Runnable {
		int i = 0;

		public void run() {
			i++;
			// 得到一个消息对象
			Message msg = handler.obtainMessage();
			// 将Message对象的arg1参数的值设置为i
			msg.arg1 = i;// 用arg1、arg2这两个成员变量传递消息,优点是系统性能消耗较少
			// 将Message对象加入到消息队里欸当中
			handler.sendMessage(msg);
		}

	}

	// 按钮点击事件
	class ProgressBarOnClickListener implements OnClickListener {

		public void onClick(View v) {
			// 设置进度条为可见状态,在main.xml中设置为visibility="gone"不可见
			progressBar.setVisibility(View.VISIBLE);
			// 实例化一个线程
			updateThread = new UpdateThread();
			// 将要执行的线程放入到队列当中
			handler.post(updateThread);
			// 按钮不可用
			startButton.setEnabled(false);
		}

	}
}

 

 

四、demo

Android-ProgressBarDemo.zip

  • 大小: 26.5 KB
  • 大小: 25.3 KB
分享到:
评论

相关推荐

    Android源码——进度条对话框Demo_new_69.zip

    这个"Android源码——进度条对话框Demo_new_69.zip"应该包含了一个完整的示例项目,展示了如何在Android应用中创建和使用进度条对话框。下面将详细讲解Android进度条对话框的相关知识点。 1. **ProgressDialog 类**...

    安卓Android源码——进度条对话框Demo源码.zip

    这个"安卓Android源码——进度条对话框Demo源码.zip"文件包含了一个完整的示例项目,用于演示如何在Android应用程序中实现进度条对话框。 首先,`.classpath`文件是Eclipse(一种常用的Android开发IDE)的工作空间...

    安卓Android源码——button圆形进度条.zip

    本资源包“安卓Android源码——button圆形进度条.zip”包含了一个自定义的按钮控件,它集成了圆形进度条功能,适用于那些需要显示加载状态或执行长时间操作的应用场景。下面将详细解析这个源码中的关键知识点。 1. ...

    安卓Android源码——android通过js调用安卓系统功能.zip

    这个压缩包文件“安卓Android源码——android通过js调用安卓系统功能.zip”很可能包含了一个示例项目,演示了如何在Android应用中通过JavaScript来调用Android系统的各种功能。下面,我们将详细探讨这一技术实现及其...

    Android源码——多种android控件的Demo_new_40.7z

    这份"Android源码——多种android控件的Demo_new_40.7z"资源,正是一个深入学习Android控件应用的宝库。通过分析其中的代码和示例,我们可以深入理解Android开发中的各种控件及其用法,从而提升我们的编程技能。 在...

    安卓Android源码——多种控件的Demo.zip

    《安卓Android源码——多种控件的Demo》 在安卓应用开发中,理解并熟练运用各种控件是至关重要的。这份"安卓Android源码——多种控件的Demo"提供了丰富的实例,帮助开发者深入理解Android UI组件的使用。下面将详细...

    安卓Android源码——SeekerBarSample.rar

    这个"安卓Android源码——SeekerBarSample.rar"文件很可能是包含了一个示例项目,展示了如何在Android应用中有效地使用SeekBar。下面将详细解释SeekerBar的基本概念、使用方法以及可能在示例代码中涉及到的关键点。 ...

    安卓Android源码——使用Vitamio打造自己的万能播放器(1)——在线播放.zip

    在"安卓Android源码——使用Vitamio打造自己的万能播放器(1)——在线播放.zip"的示例中,可能会包含一个简单的Activity或Fragment,演示如何初始化Vitamio,加载在线视频,并实现基本的播放控制。此外,源码可能还...

    安卓Android源码——Mini音乐播放器.zip

    这个压缩包文件"安卓Android源码——Mini音乐播放器.zip"提供了一个小型的Android音乐播放器的源代码,对于想要学习Android应用开发,尤其是音频处理和UI设计的开发者来说,这是一个非常宝贵的资源。它包含了一张...

    安卓Android源码——音乐播放器源码.zip

    Android设备上的音频文件可能存储在外部存储或内部存储,源码会演示如何正确处理不同情况下的文件读写和路径管理。 **10. ** **错误处理和用户体验** **:** 良好的音乐播放器源码会考虑异常处理,如网络请求失败、...

    安卓Android源码——android录音上传到服务器,上传使用AsyncTask异步任务.rar

    这个压缩包文件"安卓Android源码——android录音上传到服务器,上传使用AsyncTask异步任务.rar"包含了一个示例,它演示了如何利用Android SDK提供的API来录制音频,并通过AsyncTask异步任务将其上传到服务器。...

    安卓Android源码——垂直SeekBar(拖动条).zip

    这个压缩包“安卓Android源码——垂直SeekBar(拖动条).zip”提供了一个实现垂直Seekbar的解决方案。 垂直SeekBar,正如其名,是将传统的水平 SeekBar 控件转换为垂直方向,使得用户可以沿着屏幕的垂直轴进行滑动...

    安卓Android源码——AsyncTask_Download1.rar

    这个压缩包"AndroidAndroid源码——AsyncTask_Download1.rar"可能包含了一个示例项目,演示如何使用AsyncTask进行文件下载,特别是Android应用程序中的资源下载。下面我们将深入探讨AsyncTask以及如何将其应用于...

    安卓Android源码——ProgressDialogSample.rar

    这个名为"ProgressDialogSample"的压缩包文件很显然是一个示例项目,用于演示如何在Android应用中正确使用ProgressDialog。让我们深入探讨一下 ProgressDialog 的相关知识。 首先,ProgressDialog 是 Android SDK ...

    安卓Android源码——AsyncTask_Download2.rar

    这个名为"安卓Android源码——AsyncTask_Download2.rar"的压缩包很可能包含了一个使用AsyncTask进行文件下载的示例代码。下面我们将详细探讨AsyncTask及其在Android下载操作中的应用。 AsyncTask是Android提供的一...

    安卓Android源码——(SeekBar拖动条).zip

    本资料包“安卓Android源码——(SeekBar拖动条).zip”应该包含了一个关于如何自定义和使用SeekBar的实例代码。 SeekBar的使用主要涉及以下几个核心知识点: 1. **基本使用**:在布局文件中,我们可以使用`...

    安卓Android源码——VideoViewSample.rar

    VideoViewSample是Android官方提供的一个示例项目,用于演示如何使用VideoView进行视频播放。本文将深入探讨VideoViewSample源码,解析其工作原理,帮助开发者更好地理解和运用这一组件。 一、VideoView概述 ...

    Android源码——ListView下拉刷新 Demo_new_09.7z

    这个"Android源码——ListView下拉刷新 Demo_new_09.7z"压缩包文件提供了关于如何实现这一功能的示例代码。 1. 下拉刷新的基本原理: 下拉刷新机制主要基于监听用户的滑动手势,当用户在ListView顶部向下拉动时,...

    安卓Android源码——NotificationTest 消息推送的简单demo.zip

    这个名为"NotificationTest"的简单Demo旨在演示如何在Android系统中实现通知功能。源码分析将帮助开发者深入理解Android通知机制的工作原理,并提供一个实际操作的起点。 1. **Notification简介** Android的通知...

Global site tag (gtag.js) - Google Analytics