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

进度条的使用 ProgressBar类

 
阅读更多

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 <TextView 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="@string/hello"
     />
    <ProgressBar
     android:id="@+id/ProgressBar01"
     style="?android:attr/progressBarStyleHorizontal"
     android:layout_width="200dp"
     android:layout_height="wrap_content"
     android:visibility="gone"
    ></ProgressBar>
    <ProgressBar
     android:id="@+id/ProgressBar02"
     style="?android:attr/progressBarStyleLarge"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:max="100"
     android:progress="50"
     android:secondaryProgress="70"
     android:visibility="gone"
    ></ProgressBar>
    <Button
     android:id="@+id/Button01"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="开始"
    ></Button>
</LinearLayout>
 
代码:
package yt.hy.progressbar;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ProgressBar;
public class ProgressBarActivity extends Activity {
 private ProgressBar m_ProgressBar01;
 private ProgressBar m_ProgressBar02;
 private Button mbutton01;
 protected static final int GUI_STOP_NOTIFIER = 0x108;
 protected static final int GUI_THREADING_NOTIFIER = 0x109;
 public int intCounter = 0;
 
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        // 设置窗口模式,因为需要显示进度条在标题栏
        requestWindowFeature(Window.FEATURE_PROGRESS);
        // 设置显示进度条
        this.setProgressBarVisibility(true);
        setContentView(R.layout.main);
       
        // 取得ProgressBar
        m_ProgressBar01 = (ProgressBar)findViewById(R.id.ProgressBar01);
        m_ProgressBar02 = (ProgressBar)findViewById(R.id.ProgressBar02);
        mbutton01 = (Button)findViewById(R.id.Button01);
        
        *Change the indeterminate mode for this progress bar.
        In indeterminate mode, the progress is ignored and
        the progress bar shows an infinite animation instead.
        If this progress bar's style only supports
        indeterminate mode (such as the circular progress bars), then this will be ignored.*/
        m_ProgressBar01.setIndeterminate(true);
        m_ProgressBar02.setIndeterminate(false);
       
        mbutton01.setOnClickListener(new Button.OnClickListener() {
   @Override
   public void onClick(View v) {
    // 设置为可见状态
    m_ProgressBar01.setVisibility(View.VISIBLE);
    m_ProgressBar02.setVisibility(View.VISIBLE);
    
    // 设置ProgressBar的最大值
    m_ProgressBar01.setMax(100);
    //设置当前值
    m_ProgressBar01.setProgress(0);
    m_ProgressBar02.setProgress(0);
    
    // 通过线程改变ProgressBar的值
    new Thread(new Runnable() {
     @Override
     public void run() {
      for (int i=0; i<10; i++) {
       try {
        intCounter = (i+1) * 20;
        Thread.sleep(1000);
        
        if (i == 4) {
         Message m = new Message();
         
         m.what = ProgressBarActivity.GUI_STOP_NOTIFIER;
         // 给Handler发送消息
         ProgressBarActivity.this.myMessageHandler.sendMessage(m);
         break;
        } else {
         Message m = new Message();
         m.what = ProgressBarActivity.GUI_THREADING_NOTIFIER;
         // 给Handler发送消息
         ProgressBarActivity.this.myMessageHandler.sendMessage(m);
        }
       } catch(Exception e) {
        e.printStackTrace();
       }
      }
     }
     
    }).start();
   }
         
        });
    }
 
 Handler myMessageHandler = new Handler() {
  // 重写接收信息的方法
  public void handleMessage(Message msg) {
   switch (msg.what) {
   // 进度已满
   case GUI_STOP_NOTIFIER :
    m_ProgressBar01.setVisibility(View.GONE);
    m_ProgressBar02.setVisibility(View.GONE);
    // 打断线程
    Thread.currentThread().interrupt();
    break;
   case GUI_THREADING_NOTIFIER :
    if (!Thread.currentThread().isInterrupted()) {
     // 改变ProgressBar的当前值
     m_ProgressBar01.setProgress(intCounter);
     m_ProgressBar02.setProgress(intCounter);
     // 设置标题栏中前景的进度条的进度值
     setProgress(intCounter*100);
     // 设置标题栏中后景的进度条的进度值
     setSecondaryProgress(intCounter*100 + 10*100);
    }
    break;
   }
   super.handleMessage(msg);
  }
 };
 
}
 

 进度条的使用 <wbr>ProgressBar类


style="?android:attr/progressBarStyleHorizontal"设置进度条类型
android:visibility="gone"设置进度条不显示,用的时候再显示
android:progress="50"默认进度
android:secondaryProgress="70"底层的进度
m_ProgressBar01.setIndeterminate(false);
默认值为 false。将此值设置为 true 可在进度条上呈现进度的文本显示。
设置进度条的 indeterminate 属性,该属性确定进度条处于确定模式中还是处于不确定模式中。

不确定进度条连续地显示动画,指示发生未知长度的操作。默认情况下,此属性为 false。有些外观

可能不支持不确定进度条;它们将忽略此属性。 (也就是循序渐进的和跳进的模式)

<!--EndFragment-->
分享到:
评论

相关推荐

    pb 定制进度条 powerbuild ProgressBar

    6. **代码封装**:将上述逻辑封装成一个易于复用的类,这样在其他项目中可以方便地导入和使用这个自定义进度条控件。 在实际开发过程中,为了实现最佳效果,开发者通常会结合CSS(如果支持)或皮肤引擎来增强控件的...

    带进度条(ProgressBar)的Notification

    2. **创建NotificationBuilder**:使用NotificationCompat.Builder类来构建Notification,添加ProgressBar。 ```java NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID) ...

    C# Winform 自定义进度条ProgressBar

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

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

    进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现...自定义圆形进度条ProgressBar的一般有三种方式: 一、通过动画实现 定义res/anim/loading_anim.xml如下: &lt;?xml version=1.0 en

    jquery 进度条插件progressbar

    jQuery Progressbar 是一款广泛使用的JavaScript库,用于在网页上创建美观且功能丰富的进度条组件。这个插件允许开发者轻松地创建动态变换的进度效果,并且支持彩色和自定义样式,以适应各种用户界面的需求。 首先...

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

    【Android 进度条(ProgressBar)的功能与用法】 进度条在Android应用开发中扮演着重要的角色,它为用户提供了一种可视化的方式,显示任务的执行进度,从而增强用户体验。ProgressBar是Android SDK提供的一种UI控件...

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

    1)进度条ProgressBar使用方法 1、在layout布局文件中创建ProgressBar控件 &lt;ProgressBar nstyle=?android:attr/progressBarStyleHorizontal android:layout_width match_parent android:layout_height=wrap_content...

    android 进度条(ProgressBar)

    在布局XML文件中,可以使用`&lt;ProgressBar&gt;`标签来添加进度条。例如,创建一个水平进度条: ```xml &lt;ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:...

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

    这可能包括一个Winform窗体类,其中包含了ProgressBar控件的初始化、事件处理和进度更新的代码。通过研究这些源码,你可以更好地理解如何在实际项目中应用进度条。 总的来说,C# Winform的ProgressBar控件是提供...

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

    本篇文章将深入探讨如何使用ProgressBar来创建进度条,设置不同的显示风格,并教你如何自定义进度条样式。 首先,ProgressBar分为两种类型:indeterminate(不确定进度)和determinate(确定进度)。indeterminate...

    C# 进度条(ProgressBar)实例下载

    通过上述示例,我们可以了解到如何在C# WinForms应用程序中使用`ProgressBar`控件以及多线程技术来动态更新进度条的状态,从而提高用户体验。此方法不仅适用于简单的进度显示,也可以扩展到更复杂的场景,如文件上传...

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

    为了实现win8风格的小点进度条,可以使用一系列小圆点(例如`Ellipse`)并根据进度值改变它们的可见性或颜色。这需要更复杂的模板和逻辑,可能涉及数据绑定和触发器。每个小圆点可以作为`DataTemplate`中的元素,...

    界面控件之进度条(ProgressBar)--代码

    - 使用`android.R.style.Widget_ProgressBar_Small`、`android.R.style.Widget_ProgressBar_Large`或自定义样式来创建圆形进度条。 - `android:indeterminate`:设定是否启用不确定进度动画。 3. **使用代码动态...

    sjqzhang#webtech#进度条(Progressbar)1

    jQuery UI 进度条(Progressbar) - 自定义标签加载...查看演示不确定的值不确定的进度条,并可在确定和不确定的样式之间切换。jQuery

    3 PyQt 实现漂亮进度条 ProgressBar.zip

    在用户界面设计中,进度条(ProgressBar)是一个不可或缺的元素,用于显示任务执行的进度,给用户一个视觉反馈,让他们知道程序运行的状态。本教程将详细介绍如何使用PyQt来创建美观的进度条。 1. **PyQt简介** ...

    progressbar.rar_matlab 进度条_matlab进度条_progressbar matlab_进度条

    进度条, 占用程序很少, 方便监控循环执行情况

    c# 多种美丽的进度条 progressbar 多种特效 包你喜欢 源码

    源码中可能包含多个继承自ProgressBar的自定义类,每个类代表一种不同的进度条效果。这样设计有利于代码的重用和扩展,遵循了面向对象编程的原则。 6. **事件处理**: 在进度条改变时,可能触发事件,比如`...

    Android中使用ProgressBar实现进度条

    本篇文章将深入探讨如何在Android中使用ProgressBar以及自定义其样式。 首先,ProgressBar的基本用法是在XML布局文件中声明它。以下是一个简单的例子: ```xml &lt;ProgressBar android:id="@+id/progressBar" ...

    Android 三种常用实现自定义圆形进度条 ProgressBar

    1. 创建一个新的Java类(如CustomCircleProgressBar.java),继承自ProgressBar: ```java public class CustomCircleProgressBar extends androidx.appcompat.widget.AppCompatProgressBar { // ... 自定义属性和...

    滑动条(Slider),进度条(ProgressBar)运用

    WPF开发过程中少不了有些界面加载等待,不能没有过度界面处理你不然...这需要使用到各种样式的进度条过渡处理展示些细节提醒用户。有些参数的调整一味的使用文本框调整太生硬可以考虑使用滑动条,例如声音的调节等等。

Global site tag (gtag.js) - Google Analytics