码迷,mamicode.com
首页 > 移动开发 > 详细

AndroidUI的组成部分ProgressBar

时间:2015-10-05 12:57:41      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

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



AndroidUI的组成部分ProgressBar

标签:

原文地址:http://www.cnblogs.com/lcchuguo/p/4855565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!