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
AndroidUI的组成部分ProgressBar的更多相关文章
- AndroidUI的组成部分GridView
java 代码例如以下(简单的知识点我会以凝视的形式解说): package com.gc.gridviewdemo; /** * @author Android将军 */ /** * 知识点解说: ...
- AndroidUI的组成部分RoomButton
<!-- 知识点汇总: 1.Button与ImageButton的差别在于,Button生成的button上显示文字 而ImageButton上则显示图片.须要指出的是:为ImageButton ...
- Android--UI之ProgressBar
前言 开门见山,开篇明意.这篇博客主要讲解一下Android中ProgressBar控件以及间接继承它的两个子控件SeekBar.RatingBar的基本用法,因为其有继承关系,存在一些共有特性,所以 ...
- 【转】Android--UI之ProgressBar--不错
原文网址:http://www.cnblogs.com/plokmju/p/android_progressbar.html 前言 开门见山,开篇明意.这篇博客主要讲解一下Android中Progre ...
- EasyUI基础searchbox&progressbar(搜索框,进度条)
easyui学习的基本组成部分(八个部分)硕果仅存searchbox和pargressbar.tooltip该,有一点兴奋.本文将偏向searchbox和pargressbar做一个探讨.鉴于双方的内 ...
- [C#] (原创)一步一步教你自定义控件——04,ProgressBar(进度条)
一.前言 技术没有先进与落后,只有合适与不合适. 本篇的自定义控件是:进度条(ProgressBar). 进度条的实现方式多种多样,主流的方式有:使用多张图片去实现.使用1个或2个Panel放到Use ...
- ProgressBar
<1>基本信息设置 progressBar1.Maximum = 1000; //设置ProgressBar的最大值 progressBar1.Value = 0; ...
- android中ProgressBar和ListView
ProgressBar进度条的使用情况: 进度条的.xml声明:如果不声明格式,则默认格式为转圆圈的形式,声明进度条的visibility为不可见. <ProgressBar android:i ...
- 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing
[源码下载] 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing 作者:webabcd 介绍背水一 ...
随机推荐
- mysql登录报错 ERROR 1045 (28000)
1.现象: [root@localhost ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for us ...
- hdu 4740【模拟+深搜】.cpp
题意: 给出老虎的起始点.方向和驴的起始点.方向.. 规定老虎和驴都不会走自己走过的方格,并且当没路走的时候,驴会右转,老虎会左转.. 当转了一次还没路走就会停下来.. 问他们有没有可能在某一格相遇. ...
- vim忽略大写和小写查找配置
作者:zhanhailiang 日期:2014-12-17 默认 vim 的查找是区分大写和小写,可通过下面两种方式实现忽略大写和小写查找 set ic? noignorecase 1 指令设定: : ...
- SQL Syscolumns
每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.该表位于每个数据库中. 列名 数据类型 描述 name sysname 列名或过程参数的名称. id int 该列所属的表对象 I ...
- VBoxGuestAdditions.iso下载地址
http://download.virtualbox.org/virtualbox/4.1.2/VBoxGuestAdditions_4.1.2.iso 其它版本号可依次判断..
- c#代码规范和质量检查工具这点事
c#代码规范和质量检查工具这点事 代码风格检查:StyleCop 代码缺陷检查:FxCop 代码质量: 代码度量值/Code Metrics StyleCop 介绍 The StyleCop tool ...
- DIV水平和垂直居中的实现
在div的宽度和高度固定的情况下,实现div水平和垂直居中普遍采用如下的方式: <!DOCTYPE html> <html> <head> <style ty ...
- NYOJ 45 棋盘覆盖 模拟+高精度
题意就不说了,中文题... 小白上讲了棋盘覆盖,于是我就挖了这题来做. 棋盘覆盖的推导不是很难理解,就是分治的思想,具体可以去谷歌下. 公式就是f(k) = f(k - 1) * 4 + 1,再化解下 ...
- 理解RESTful架构(转)
越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...
- 给节点设置tag【从零開始cocos3.0final 】
在cocos中通过tag来管理节点是非经常常使用的:以下介绍一个关于在cocos中使用tag的实例: typedef enum{ tag1 }Tag; 这里能够使用枚举类型,来为多个节点设置tag: ...