`
苹果超人
  • 浏览: 200830 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ProgressBar

阅读更多
  还记得前面的ProgressDialog吗?在应用时,必须新建ProgressDialog对象,在运行时会弹出"对话框"作为提醒,此时应用程序的后台失去焦点,知道进程结束后,才能重新获取焦点,而在ProgressBar中,可以提示User后台程序正处于忙碌,也可以不让后台失去焦点。
  另外,系统默认的ProgressBar是小圆圈,你可以自己设置ProgressBar。如果你想要一个水平的进度条,你可以用android自带的样式。如下:
<ProgressBar android:id="@+id/progressBar1" 
             android:layout_width="fill_parent" 
             android:layout_height="wrap_content"
             android:visibility="gone"
             style="?android:attr/progressBarStyleHorizontal"/>

android:progressDrawable="@android:drawable/progress_horizontal"设置progressBar的mode(是圆圈还是长条等等)
           android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"设置progressBar.setIndeterminate(true)时的progressBar的背景进度Bar
  部分代码:
package com.kevin.processbar;

import android.R.integer;
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;

public class Main extends Activity {
	private static final int STOP = 1;
	private static final int UPDATE = 2;
	private int count = 0;
	private TextView tv_title;
	private Button btn_progress;
	private ProgressBar progressBar;
	private Handler handler;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv_title = (TextView) findViewById(R.id.tv_title);
        progressBar = (ProgressBar) findViewById(R.id.progressBar1);
        progressBar.setIndeterminate(false);
        btn_progress = (Button) findViewById(R.id.button1);
        btn_progress.setOnClickListener(new ProgressButtonClickListener());
        handler = new Handler(){

			@Override
			public void handleMessage(Message msg) {
				switch (msg.what) {
				case UPDATE:
					if(!Thread.currentThread().isInterrupted()){
						/*
						 * 默认的ProgressBar(也就是转圈圈的那种),该方法对它没任何作用
						 * 另外如果你的进度条是一根长条,但是你设置了progressBar.setIndeterminate(true);
						 * 下面的方法同样没有作用
						 */
						progressBar.setProgress(count);
						System.out.println(progressBar.getProgress());
						tv_title.setText(getString(R.string.start) + "("
								+ String.valueOf(count) + "%" +
								")\n" + "Progress:" +
								String.valueOf(progressBar.getProgress()) +
								"\n" + "Indeterminate: " + Boolean.toString(progressBar.isIndeterminate()));
					}
					break;
				case STOP:
					tv_title.setText(R.string.finish);
					// 设置ProcessBar为隐藏
					progressBar.setVisibility(View.GONE);
					Thread.currentThread().isInterrupted();
					break;
				default:
					break;
				}
				super.handleMessage(msg);
			}        	
        };
    }
    class ProgressButtonClickListener implements OnClickListener{
		@Override
		public void onClick(View v) {
			tv_title.setText(R.string.start);
			// 将隐藏的ProgressBar显示出来
			progressBar.setVisibility(View.VISIBLE);
			// 指定ProgressBar最多为100
			progressBar.setMax(100);
			// 设置ProgressBar的初始值
			progressBar.setProgress(0);
			// 开启一个线程
			new Thread(new Runnable() {
				
				@Override
				public void run() {
					for(int i = 0 ; i < 10; i++){
						try{
							count = (i + 1) * 10;
							Thread.sleep(1000);
							if(i == 9){
								Message msg = new Message();
								msg.what = STOP;
								handler.sendMessage(msg);
								break;
							}else{
								Message msg = new Message();
								msg.what = UPDATE;
								handler.sendMessage(msg);
							}
						}catch (Exception e) {
							e.printStackTrace();
						}
					}
				}
			}).start();
		}	
    }
}
分享到:
评论
1 楼 ying_jia 2011-11-18  
这些天没事看看你写的代码,的确挺清晰的。

相关推荐

    带动画的横向ProgressBar

    在Android开发中,ProgressBar是用户界面中非常常见的一种组件,用于表示某个操作的进度或等待状态。本主题聚焦于“带动画的横向ProgressBar”,这种组件能够以动态的方式展示进度变化,提升用户体验。以下是对这个...

    Android 自定义各式各样的圆形ProgressBar

    在Android开发中,ProgressBar是用户界面(UI)设计中一个重要的元素,用于向用户展示某个操作的进度或者等待状态。通常,系统提供的ProgressBar样式有限,但开发者可以通过自定义来实现更多样化的效果,以满足不同...

    Progressbar进度条的使用

    在Android开发中,`ProgressBar`是一个非常常见的组件,它用于展示任务执行的进度,比如文件下载、上传或者网络请求等。本教程将深入探讨如何利用`Handler`消息机制来实现`ProgressBar`的动态更新,展示进度条中进度...

    c# ProgressBar 光滑进度条 源码

    在C#编程中,ProgressBar控件是用于向用户显示任务进度的一个重要元素。"Smooth ProgressBar"则是一种增强型的进度条,它提供了平滑、连续的动画效果,使得用户界面更具吸引力和反馈感。在Windows Forms或WPF应用中...

    页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作

    在Windows Forms或WPF应用程序中,`ProgressBar`控件是一个常用元素,用于向用户展示某个操作的进度。在这个场景中,我们需要使用线程技术来控制`ProgressBar`在10秒内逐渐填充,以模拟一个耗时操作的进度。下面将...

    超级漂亮的 progressbar效果

    【ProgressBar】既进度条,当我们在做一些耗时操作的时候(例如下载文件),可以使用ProgressBar给用户提供一个进度提示,告诉用户当前的进度。 ProgressBar.js 是一个借助动态 SVG 路径的漂亮的,响应式的进度条...

    Android应用源码之ProgressBar 几乎全部的用法

    在Android开发中,ProgressBar是一个非常重要的组件,它用于显示进度或等待状态,为用户提供反馈,表明应用程序正在进行后台处理。ProgressBar提供了多种样式和用法,包括水平、垂直、圆形以及自定义样式。本教程将...

    winform c# ProgressBar特殊样式style

    在Windows Forms(Winform)开发中,`ProgressBar`控件常用于显示任务进度或等待状态。然而,系统默认的`ProgressBar`样式较为简单,可能无法满足开发者对于界面美观度的需求。`winform c# ProgressBar特殊样式style...

    C# progressBar进度条绘制文字显示百分比

    在C#编程中,`progressBar`控件是Windows Forms应用程序中常见的元素,用于向用户显示操作的进度。默认情况下,进度条仅通过其填充部分的长度来表示进度,但有时候我们希望更直观地显示进度,例如以百分比的形式。本...

    WPF实现ProgressBar气泡显示进度值

    在Windows Presentation Foundation (WPF) 中,ProgressBar 是一个常见的控件,用于显示应用程序执行过程中的进度。本项目“WPF实现ProgressBar气泡显示进度值”着重于改进此控件,使其能够以更直观的方式呈现进度...

    WPF,好看的圆形ProgressBar实现

    在Windows Presentation Foundation (WPF) 中,ProgressBar 是一个非常有用的控件,用于显示进度或操作完成的百分比。当我们想要创建一个美观且引人注目的界面时,圆形ProgressBar(也称为环形进度条)是一个很好的...

    自定义ProgressBar的菊花加载

    在Android开发中,ProgressBar是用于显示进度或加载状态的一个组件,它可以帮助用户了解应用程序后台运行的任务正在处理中。本主题将深入探讨如何自定义ProgressBar,特别是实现“菊花加载”效果,这种效果通常在...

    WPF中使用ProgressBar实现垂直温度计效果

    在Windows Presentation Foundation (WPF) 中,ProgressBar是一个用于显示进度的可视化控件,通常用于表示一个操作的完成度。在本教程中,我们将探讨如何利用ProgressBar控件来创建一个垂直的温度计效果,以实现一个...

    ProgressBar的几个小样及自定义圆形ProgressBar半径大小 .

    ProgressBar是Android系统中一个常用的组件,它用于显示进度或加载状态。在Android开发中,我们经常需要自定义ProgressBar以满足不同界面设计的需求。本篇文章将深入探讨ProgressBar的几个常见样式以及如何自定义一...

    C# wpf中动态添加ProgressBar

    在C# WPF应用开发中,动态添加ProgressBar到ListView是一种常见的需求,特别是在处理大量数据或者进行后台任务执行时,为了提供用户友好的界面反馈。在VS(Visual Studio)开发环境中,我们可以利用WPF的灵活性和...

    Android下ProgressBar和旗下两个子控件的使用

    在Android开发中,ProgressBar是一个非常常见的控件,用于显示进度状态,可以是线性的或圆形的。本篇文章将深入探讨Android中的ProgressBar及其两个主要子类SeekBar和RatingBar的使用方法。 首先,我们来了解...

    C# Winform 自定义进度条ProgressBar

    "C# Winform 自定义进度条ProgressBar"的主题正聚焦于这一需求,允许开发者根据自己的喜好或者项目需求改变默认进度条的外观,特别是其背景颜色。 进度条(ProgressBar)是Windows应用程序中常见的一种组件,用于...

    C# winform 进度条 ProgressBar 带进度显示

    在C# Winform应用开发中,进度条控件(ProgressBar)是用户界面中不可或缺的一部分,它为用户提供关于长时间运行操作的进度反馈。本教程将详细讲解如何在Winform应用程序中创建一个带有进度显示的进度条。 首先,让...

    Android三种方式实现ProgressBar自定义圆形进度条

    进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现ProgressBar自定义圆形进度条。 Android进度条有4种风格可以使用。 默认值是progressBarStyle。 设置成progressBarStyleSmall后,图标变小...

Global site tag (gtag.js) - Google Analytics