`
jiguansheng
  • 浏览: 127656 次
  • 性别: Icon_minigender_1
  • 来自: 九江
社区版块
存档分类
最新评论

Android 基础教程之-------Android ProgressBar的使用!

 
阅读更多

大家好,今天给大家讲一下Android中ProgressBar的使用,这个控件在开发中还是经常用到的,比如用户浏览网页的时候,中间肯定有个 传输过程,所以用进度条让用户耐心等待。再比如我在Android Market下载应用,它也会有进度条显示下载进度。我为什么要举这两个例子呢,是因为它们分别是圆形进度条和长形进度条的代表。如下面两张图:

图1.UC浏览网页圆形进度条效果。

 

图2.Google Market应用下载长形进度条效果.

 

下面我们看一下两都皆有之的Android自带的浏览器的效果图如下:

为了让大家更容易理解我将简单写一个Demo,大家可以按照我的步骤一步一步来。

第一步:新建一个Android工程命名为ProgressBarDemo.

 

第二步:修改main.xml代码如下(圆形进度条和长形进度条这里样式不同用系统自带的):

 

  1. <?xml version="1.0" encoding="utf-8"?>    
  2.  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.      android:orientation="vertical"   
  4.      android:layout_width="fill_parent"    
  5.      android:layout_height="fill_parent">    
  6.        
  7.      <TextView   
  8.          android:layout_width="fill_parent"    
  9.          android:layout_height="wrap_content"   
  10.          android:text="Welcome to Mr Wei's blog" />    
  11.      <ProgressBar   
  12.          android:id="@+id/rectangleProgressBar"    
  13.          style="?android:attr/progressBarStyleHorizontal" mce_style="?android:attr/progressBarStyleHorizontal"     
  14.          android:layout_width="fill_parent"   
  15.          android:layout_height="wrap_content"  
  16.          android:visibility="gone"  
  17.          />  
  18.      <ProgressBar   
  19.          android:id="@+id/circleProgressBar"    
  20.          style="?android:attr/progressBarStyleLarge" mce_style="?android:attr/progressBarStyleLarge"  
  21.          android:layout_width="wrap_content"   
  22.          android:layout_height="wrap_content"  
  23.          android:visibility="gone"   
  24.          />  
  25.         
  26.      <Button android:id="@+id/button"   
  27.              android:text="Show ProgressBar"    
  28.              android:layout_width="wrap_content"   
  29.              android:layout_height="wrap_content"  
  30.              />  
  31.  </LinearLayout>   

 

第三步:修改ProgressBarDemo.java代码如下(如果这里有对Handler和Message不明白的地方可以去Android高 手进阶教程(九) 看下这个教程):

 

  1. package com.tutor.progress;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.os.Handler;  
  5. import android.os.Message;  
  6. import android.view.View;  
  7. import android.widget.Button;  
  8. import android.widget.ProgressBar;  
  9. public class ProgressBarDemo extends Activity {  
  10.       
  11.     private ProgressBar rectangleProgressBar,circleProgressBar;  
  12.     private Button mButton;  
  13.       
  14.     protected static final int STOP = 0x10000;  
  15.     protected static final int NEXT = 0x10001;  
  16.     private int iCount = 0;  
  17.       
  18.     public void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.main);  
  21.         //findView By id  
  22.         rectangleProgressBar = (ProgressBar)findViewById(R.id.rectangleProgressBar);  
  23.         circleProgressBar = (ProgressBar)findViewById(R.id.circleProgressBar);  
  24.         mButton = (Button)findViewById(R.id.button);  
  25.           
  26.         rectangleProgressBar.setIndeterminate(false);  
  27.         circleProgressBar.setIndeterminate(false);  
  28.           
  29.         mButton.setOnClickListener(new Button.OnClickListener() {  
  30.               
  31.             public void onClick(View v) {  
  32.                   
  33.                 rectangleProgressBar.setVisibility(View.VISIBLE);  
  34.                 circleProgressBar.setVisibility(View.VISIBLE);  
  35.                   
  36.                 rectangleProgressBar.setMax(100);  
  37.                 rectangleProgressBar.setProgress(0);  
  38.                 circleProgressBar.setProgress(0);  
  39.                   
  40.                 //创建一个线程,每秒步长为5增加,到100%时停止  
  41.                 Thread mThread = new Thread(new Runnable() {  
  42.                       
  43.                     public void run() {  
  44.                           
  45.                         for(int i=0 ; i < 20; i++){  
  46.                             try{  
  47.                                 iCount = (i + 1) * 5;  
  48.                                 Thread.sleep(1000);  
  49.                                 if(i == 19){  
  50.                                     Message msg = new Message();  
  51.                                     msg.what = STOP;  
  52.                                     mHandler.sendMessage(msg);  
  53.                                     break;  
  54.                                 }else{  
  55.                                     Message msg = new Message();  
  56.                                     msg.what = NEXT;  
  57.                                     mHandler.sendMessage(msg);  
  58.                                 }  
  59.                             }catch (Exception e) {  
  60.                                 e.printStackTrace();  
  61.                             }  
  62.                         }  
  63.                           
  64.                     }  
  65.                 });  
  66.                 mThread.start();  
  67.             }  
  68.         });  
  69.     }  
  70.       
  71.     //定义一个Handler  
  72.     private Handler mHandler = new Handler(){  
  73.         public void handleMessage(Message msg){  
  74.             switch (msg.what) {  
  75.             case STOP:  
  76.                 rectangleProgressBar.setVisibility(View.GONE);  
  77.                 circleProgressBar.setVisibility(View.GONE);  
  78.                 Thread.currentThread().interrupt();  
  79.                 break;  
  80.             case NEXT:  
  81.                 if(!Thread.currentThread().isInterrupted()){  
  82.                     rectangleProgressBar.setProgress(iCount);  
  83.                     circleProgressBar.setProgress(iCount);  
  84.                 }  
  85.                 break;  
  86.             }  
  87.         }  
  88.     };  
  89. }  

 

 

第四步:运行上述工程,效果如下图:

 

OK,今天就先到这里,希望对大家有所帮助,大家多留言。谢谢大家 ~

分享到:
评论

相关推荐

    Android高手进阶教程与Android基础教程

    Android基础教程之----Android ProgressBar的使用.doc Android基础教程之----Android中两种设置全屏的方法!!.doc Android基础教程之----Android状态栏提醒(Notification,NotificationManager)的使用.doc Android基础...

    Android Studio视频教程-1

    【Android Studio视频教程-1】是一系列以Java编程语言为基础,使用Android Studio集成开发环境(IDE)进行Android应用开发的教育教程。这个教程涵盖了从基础到进阶的多个主题,旨在帮助初学者快速掌握Android应用...

    android用户界面之ProgressBar教程实例汇总

    下面我们将从基础知识、简单应用以及实例源码三个方面深入探讨ProgressBar的使用。 一、ProgressBar基础知识 1. ProgressBar的基本使用涉及到XML布局文件中的声明,如`&lt;ProgressBar&gt;`标签,以及Java代码中的初始化...

    自定义百分比的progressbar

    本教程将深入探讨如何自定义一个显示百分比的ProgressBar,即“自定义百分比的progressbar”。 首先,我们需要理解Android的ProgressBar基本工作原理。ProgressBar是Android SDK中的一个视图组件,用于展示进度或...

    新版Android开发教程+笔记--基础UI编程

    总结,本教程涵盖了Android基础UI编程的关键点,包括控件使用、布局管理、事件监听、源码分析、自定义组件、颜色和字体设置以及屏幕适配。通过深入学习和实践,开发者可以构建出美观且功能完善的Android应用程序。

    Android开发教程-基础UI编程

    本教程将深入探讨Android的基础UI编程,包括各种常用的UI控件及其用法。 首先,我们从最基本的控件开始。TextView是Android中最常见的控件,用于显示文本。你可以设置文字内容、字体样式、颜色等属性。比如,通过`...

    2015最新Android基础入门教程.pdf

    总结而言,这份2015年发布的Android基础入门教程覆盖了从系统架构、开发环境搭建、版本控制工具使用到UI设计和控件使用等基础知识,为想要学习Android开发的初学者提供了一套完整的入门指南。随着Android技术的不断...

    新版Android开发教程 笔记9--基础UI编程3

    总的来说,Android基础UI编程包括了布局管理、视图组件、事件处理、自定义视图、颜色与样式以及主题样式等多个方面。掌握这些知识点,开发者就能够创建出丰富多样的用户界面,提升应用的用户体验。这篇笔记详细介绍...

    android开发资料大全

    《android基础教程合集》 Android实例教程 会员贡献索引贴 实用Android开发工具和资源精选 APK权限大全 - Android必懂知识 最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) ...

    Android应用源码简单的移动点餐项目

    一、Android应用开发基础 1. Activity与Intent:在Android应用中,Activity是用户界面的基本单元,用于显示UI并处理用户交互。Intent则用于在不同的Activity之间传递数据和启动服务。在这个点餐应用中,Intent可能会...

    Android-Android自定义View-仿淘宝淘抢购进度条

    本教程将深入讲解如何基于Android平台实现一个仿淘宝淘抢购进度条的效果。这个进度条不仅具有动态展示进度的功能,还可能包含一些特定的设计元素,如动画效果、自定义颜色等。 首先,我们需要创建一个新的View类,...

    Android各种ProgressBar

    在XML布局文件中,可以使用自定义属性来改变ProgressBar的外观,如`android:max`设定最大值,`android:progress`设定当前进度,`android:secondaryProgress`则可以用来显示次要进度。 9. **主题和样式** 通过设置...

    android安卓app开发教程之所有的android控件使用教程.zip

    本教程将深入探讨Android平台上常见的各种控件及其使用方法,帮助开发者熟练掌握Android App的界面设计。 首先,我们来看看“一个Demo让你掌握所有的android控件.docx”。这个文档很可能是提供了一个实际操作的例子...

    android游戏开发教程

    ### Android游戏开发教程知识点概述 #### 一、Android平台与环境搭建 - **平台优势**:Android操作系统以其开放性、可定制性和广泛的设备兼容性,成为全球最受欢迎的移动平台之一,为开发者提供了丰富的开发资源和...

    android 实例 教程 例子

    在Android开发领域,实例教程和例子是学习新技能和理解各种控件功能的关键。本教程主要针对Android平台,提供了一系列的实例,旨在帮助开发者更好地掌握Android应用开发。 首先,我们来了解一下Android平台的基础。...

    progressbar自定义

    本教程将深入探讨如何自定义ProgressBar,包括控制其转动和停止。 首先,我们需要了解ProgressBar的基本用法。在XML布局文件中,可以添加一个ProgressBar,通过`android:indeterminate`属性来设置是否显示不确定的...

    android 控件教程

    在Android开发中,控件是构建用户界面的基础元素,它们为用户提供交互的视觉表示。本教程将深入探讨Android中常见的控件及其用法,帮助开发者创建功能丰富的应用程序。以下是一些关键知识点: 1. **TextView**:...

    android定制评分RatingBar带注释

    - RatingBar是Android SDK中的一个标准控件,继承自ProgressBar,用于显示星形评分。 - 默认的RatingBar提供了基本的星星数量和选中状态,但往往不能满足复杂的设计需求。 2. **自定义RatingBar**: - 自定义...

    Android控件操作-二十四章经 - v1.01

    作者在Android领域有着深厚的积累,不仅有丰富的开发经验,而且热衷于分享技术知识,他的作品包括《Android百战经典》和《Android实战简易教程》等。此书旨在帮助读者通过实践快速掌握Android控件的使用,提高编程...

    Android通过WEBVIEW调用HTTPS

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容,实现与网页的交互。当涉及到安全的网络通信时,HTTPS协议因其数据加密和身份验证特性成为首选。本文将深入探讨如何在Android...

Global site tag (gtag.js) - Google Analytics