zoukankan      html  css  js  c++  java
  • AndroidUI的组成部分ProgressBar

    package com.gc.progressbar;
    /*
     * 1、ProgressBar组件也是一组重要的组件,ProgressBar本身代表了进度条组件,
     * 它还派生了两个经常使用的组件:SeekBar和RatingBar。
     * 2、进度条的功能与使用方法:
     * 进度条通经常使用于向用户显示某个耗时操作完毕的百分比,进度条能够动态地显示运行进度
     * 因此避免长时间地运行某个耗时操作时,让用户感觉程序失去了响应。
     * Android支持例如以下几种风格的进度条。通过style属性能够为ProgressBar指定风格
     * @android:style/Widget.ProgressBar.Horizontal-----水平进度条
     * @android:style/Widget.ProgressBar.Inverse--------普通大小的环形进度条
     * @android:style/Widget.ProgressBar.Large----------大环形进度条
     * @android:style/Widget.ProgressBar.Large.Inverse---大环形进度条
     * @android:style/Widget.ProgressBar.Small-----------小环形进度条
     * @android:style/Widget.ProgressBar.Small.Inverse---小环形进度条
     * 3、ProgressBar经常使用的XML属性:
     * android:max-------------------设置该进度条的最大值
     * android:progress--------------设置该进度条的已完毕进度值
     * android:progressDrawable------设置该进度条的轨道相应的Drawable对象
     * android:indeterminate---------该属性设为true。设置进度条不精确显示运行进度
     * android:indeterminateDrawable-设置绘制不显示运行进度的进度条的Drawable对象
     * android:indeterminateDuration-设置不精确显示运行进度的持续时间
     * android:progressDrawable用于指定进度条的轨道的绘制形式,该属性可指定为
     * 一个LayerDrawable对象(该对象可通过在XML文件里用<layer-list>元素进行配置 )的引用
     * 4、ProgressBar提供了以下两个方法来操作进度
     * setProgress(int) ---设置进度的完毕百分比
     * incrementProgressBy(int)---设置进度条的进度添加或降低。当參数为正数时进度添加
     * ,当參数为负数时进度降低。

    */ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.Menu; import android.widget.ProgressBar; /** * * @author Android将军 * */ public class MainActivity extends Activity { //该程序模拟填充长度为100的数组 private int [] data=new int[100]; private int hasData=0; //记录ProgressBar的完毕进度 private int status=0; private ProgressBar bar,bar2; //创建一个负责更新的进度的Handler Handler mHandler=new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub //表明消息是由该程序发送的 if(msg.what==0x111) { bar.setProgress(status); bar2.setProgress(status); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bar=(ProgressBar)findViewById(R.id.bar); bar2=(ProgressBar)findViewById(R.id.bar2); //启动线程来运行任务 new Thread() { public void run() { while(status<100) { //获取耗时操作的完毕百分比 status=doWork(); //发送消息 mHandler.sendEmptyMessage(0x111); } } }.start(); } //模拟一个耗时的操作 public int doWork() { // 为数组元素赋值 data[hasData++]=(int)(Math.random()*100); try { Thread.sleep(100); }catch(InterruptedException e) { e.printStackTrace(); } return hasData; } }

    布局文件:
    
    

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
       >
    
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
            <!-- 定义一个大环形进度条 -->
            <ProgressBar 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="@android:style/Widget.ProgressBar.Large"
                />
            <!-- 定义一个中等大小的环形进度条 -->
            <ProgressBar 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
            <!-- 定义一个小环形进度条 -->
            <ProgressBar 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="@android:style/Widget.ProgressBar.Small"
                />
        </LinearLayout>
        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="任务完毕的进度"
            />
        <!-- 定义一个水平进度条 -->
        <ProgressBar 
            android:id="@+id/bar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:max="100"
            style="@android:style/Widget.ProgressBar.Horizontal"
            />
        <!-- 定义一个水平进度条,并改变轨道外观 -->
        <ProgressBar 
            android:id="@+id/bar2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:max="100"
            android:progressDrawable="@drawable/my_bar"
            style="@android:style/Widget.ProgressBar.Horizontal"
            />
    
    </LinearLayout>
    

    转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/25555633



  • 相关阅读:
    解惑丨C语言字符串常量、字符数组、字符指针!
    程序员压根就不想找对象?谁说的,给我站出来!
    C/C++实习工作应该具备那些能力?才能拿更好的工作和薪资!
    mysql查看创建数据表的DDL语句
    .NET 5 ML.NET 部署运行时出现 Unable to load DLL MklImports 的处理方法
    canvas波浪扇形
    小程序 Canvas 倒计时组件 (React 版)
    Canvas 倒计时
    策略模式实战中多种写法
    MySQL-基础架构介绍
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4855565.html
Copyright © 2011-2022 走看看