`

Android 程式开发:(十)基本控件 —— 10.3 ProgressBar

 
阅读更多

当执行某些正在处理的任务时,ProgressBar提供了一个可视化的反馈。例如,你在从web服务器下载数据,然后需要更新下载的状态。在这种情况下,ProgressBar就是一个很好的选择。下面的例子,展示如何去使用ProgressBar。

1、创建一个工程,BasicViews2。

2、main.xml中的代码。

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <ProgressBarandroid:id="@+id/progressbar"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"/>
  9. </LinearLayout>
3、Basic2Activity.java中的代码。
  1. packagenet.learn2develop.BasicViews2;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.os.Handler;
  5. importandroid.view.View;
  6. importandroid.widget.ProgressBar;
  7. publicclassBasicViews2ActivityextendsActivity{
  8. staticintprogress;
  9. ProgressBarprogressBar;
  10. intprogressStatus=0;
  11. Handlerhandler=newHandler();
  12. /**Calledwhentheactivityisfirstcreated.*/
  13. @Override
  14. publicvoidonCreate(BundlesavedInstanceState){
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. progress=0;
  18. progressBar=(ProgressBar)findViewById(R.id.progressbar);
  19. //---dosomeworkinbackgroundthread---
  20. newThread(newRunnable()
  21. {
  22. publicvoidrun()
  23. {
  24. //?dosomeworkhere?
  25. while(progressStatus<10)
  26. {
  27. progressStatus=doSomeWork();
  28. }
  29. //---hidestheprogressbar---
  30. handler.post(newRunnable()
  31. {
  32. publicvoidrun()
  33. {
  34. //---0-VISIBLE;4-INVISIBLE;8-GONE---
  35. progressBar.setVisibility(View.GONE);
  36. }
  37. });
  38. }
  39. //---dosomelongrunningworkhere---
  40. privateintdoSomeWork()
  41. {
  42. try{
  43. //---simulatedoingsomework---
  44. Thread.sleep(500);
  45. }catch(InterruptedExceptione)
  46. {
  47. e.printStackTrace();
  48. }
  49. return++progress;
  50. }
  51. }).start();
  52. }
  53. }
4、F11调试,会看见ProgressBar的动画,5秒之后,动画消失。



接下来展示如何自定义ProgressBar的样式。

1、使用之前的例子,修改main.xml。

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <ProgressBarandroid:id="@+id/progressbar"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. style="@android:style/Widget.ProgressBar.Horizontal"/>
  10. </LinearLayout>

2、Basic2Activity.java中的代码。

  1. packagenet.learn2develop.BasicViews2;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.os.Handler;
  5. importandroid.view.View;
  6. importandroid.widget.ProgressBar;
  7. publicclassBasicViews2ActivityextendsActivity{
  8. staticintprogress;
  9. ProgressBarprogressBar;
  10. intprogressStatus=0;
  11. Handlerhandler=newHandler();
  12. /**Calledwhentheactivityisfirstcreated.*/
  13. @Override
  14. publicvoidonCreate(BundlesavedInstanceState){
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. progress=0;
  18. progressBar=(ProgressBar)findViewById(R.id.progressbar);
  19. progressBar.setMax(200);
  20. //---dosomeworkinbackgroundthread---
  21. newThread(newRunnable()
  22. {
  23. publicvoidrun()
  24. {
  25. //?dosomeworkhere?
  26. while(progressStatus<100)
  27. {
  28. progressStatus=doSomeWork();
  29. //?Updatetheprogressbar?
  30. handler.post(newRunnable()
  31. {
  32. publicvoidrun(){
  33. progressBar.setProgress(progressStatus);
  34. }
  35. });
  36. }
  37. //---hidestheprogressbar---
  38. handler.post(newRunnable()
  39. {
  40. publicvoidrun()
  41. {
  42. //---0-VISIBLE;4-INVISIBLE;8-GONE---
  43. progressBar.setVisibility(View.GONE);
  44. }
  45. });
  46. }
  47. //---dosomelongrunningworkhere---
  48. privateintdoSomeWork()
  49. {
  50. try{
  51. //---simulatedoingsomework---
  52. Thread.sleep(50);
  53. }catch(InterruptedExceptione)
  54. {
  55. e.printStackTrace();
  56. }
  57. return++progress;
  58. }
  59. }).start();
  60. }
  61. }
3、F11调试。

4、当ProgressBar的进度到达50%的时候,它就会消失。


附:

ProgressBar的样式列表。

  • Widget.ProgressBar.Horizontal
  • Widget.ProgressBar.Small
  • Widget.ProgressBar.Large
  • Widget.ProgressBar.Inverse
  • Widget.ProgressBar.Small.Inverse
  • Widget.ProgressBar.Large.Inverse

分享到:
评论

相关推荐

    安卓Android源码——(ProgressBar进度条).zip

    这个压缩包“安卓Android源码——(ProgressBar进度条).zip”很可能包含了关于如何自定义和使用ProgressBar的源代码示例。下面我们将详细探讨ProgressBar的相关知识点。 1. **ProgressBar的基本用法** ProgressBar...

    安卓Android源码——(ProgressBar进度条).rar

    这个压缩包文件"安卓Android源码——(ProgressBar进度条).rar"很可能包含了一些关于如何自定义和使用ProgressBar的示例代码和解释。下面将详细探讨Android中的ProgressBar及其相关知识点。 1. **ProgressBar的基本...

    progressbar控件(Android)

    在Android开发中,ProgressBar是一个非常重要的控件,它用于显示进度状态,比如数据加载、文件下载等操作。在Android 2.3版本中,开发者可以使用ProgressBar来为用户创建直观的等待反馈,增强用户体验。本篇文章将...

    安卓Android源码——ProgressBar 几乎全部的用法.zip

    7. **使用Material Design的ProgressBar**:Android支持Material Design的ProgressBar,提供更现代的视觉效果。可以使用`com.google.android.material.progressindicator.LinearProgressIndicator`或`...

    ScopeControl.zip范围控件——Slider、ProgressBar滑块、进度条案例

    在本文中,我们将深入探讨WPF(Windows Presentation Foundation)中的范围控件,主要涉及Slider和ProgressBar两种组件。这些控件在用户界面设计中扮演着重要角色,为用户提供直观的反馈和交互方式。我们将通过C#...

    Android自定义控件——圆形进度条

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本篇文章将深入探讨如何创建一个圆形进度条,即`CircleProgressView`。这个控件能够以圆形的形式展示进度,常见于加载动画或者显示数据百分比的...

    android自定义控件:图文编辑框,菊花样式Progressbar

    在Android开发中,自定义控件是提升应用用户体验和界面独特性的重要手段。本文将深入探讨如何创建一个图文编辑框以及实现菊花样式(也称 loading 动画)的Progressbar,这两个自定义控件。 首先,我们要理解图文...

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

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

    Android代码-Progressbar

    Android自定义Progressbar ...教程博客:Android自定义View——从零开始实现圆形进度条 效果展示: 水波浪进度框WaveProgressView 教程博客:Android自定义View——从零开始实现水波浪进度框 效果展示:

    AndroidProgressBar_Android ProgressBar进度条的几乎全部的用法源码集.rar

    1. **基本概念**:ProgressBar是Android SDK中的一个控件,用于显示进度指示,它可以是线性的、圆环形的或者是自定义形状的。它通常用于下载、上传、安装等需要时间的操作中,提供用户反馈。 2. **线性ProgressBar*...

    Android:ProgressBar的初步学习

    在Android开发中,`ProgressBar`是一个非常常见的组件,它用于显示进度或加载状态,为用户提供反馈,表明应用程序正在进行后台操作。本项目是一个针对初学者的`ProgressBar`初步学习实例,旨在帮助开发者理解如何在...

    安卓Android源码——ProgressBar几乎全部的用法.zip

    10. **使用Material Design的Progress Bar**:Android Material Design提供了更现代的`ProgressBar`实现,如`MaterialProgressBar`,它具有更多的动画效果和样式选择。 学习这个压缩包的内容,开发者可以掌握如何在...

    Android开发之ProgressBar及其style样式的使用.zip

    在Android开发中,ProgressBar是一个非常重要的组件,它用于显示进度或加载状态,用户可以直观地看到后台任务的执行情况。本教程将详细讲解如何在Android应用中使用ProgressBar及其style样式,特别关注使用Kotlin...

    Android 控件 ProgressBar进度条源码

    ProgressBar是Android系统中的一种基本控件,用于展示应用程序的加载进度或者用户操作的进度状态。在Android开发中,它是一个非常实用的元素,能够提供良好的用户体验。本教程将深入探讨ProgressBar的源码,帮助...

    Android实现进度条(ProgressBar)的功能与用法

    ProgressBar是Android SDK提供的一种UI控件,用于显示进度,通常用于表示后台任务的执行状态。下面我们将详细介绍如何在Android中实现和使用进度条。 首先,我们来看一下进度条的基本使用。在布局文件(如activity_...

    Android中使用ProgressBar实现进度条

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

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

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

    Android进度条控件progressbar使用方法详解

    1、在layout布局文件中创建ProgressBar控件 &lt;ProgressBar nstyle=?android:attr/progressBarStyleHorizontal android:layout_width match_parent android:layout_height=wrap_content android:progress&gt; 2、用...

    Android 之 ProgressBar用法介绍

    ProgressBar是Android系统中的一种UI组件,它用于显示进度或加载状态。这个组件在各种场景下都非常常见,如数据加载、文件上传下载等。本篇文章将深入探讨ProgressBar的使用方法,包括其基本用法、样式定制以及...

    Android应用开发完全自学手册

    第7章:Android交互控件——菜单与对话框 这一章主要涉及Android中的菜单系统,包括选项菜单、上下文菜单和子菜单的创建。同时,也会讲解对话框(Dialog)的使用,包括警告对话框、输入对话框和自定义对话框的实现,...

Global site tag (gtag.js) - Google Analytics