进度条ProgressBar

简介:

拖动滑块改变图片透明度

1.布局

复制代码
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6     tools:context=".AndroidProgerssBarActivity" >
 7 
 8     <TextView
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:layout_centerHorizontal="true"
12         android:layout_centerVertical="true"
13         android:text="任务完成进度" />
14 
15     <ProgressBar
16         android:id="@+id/bar"
17         style="@android:style/Widget.ProgressBar.Horizontal"
18         android:layout_width="match_parent"
19         android:layout_height="wrap_content"
20         android:max="100" />
21 
22     <ProgressBar
23         android:id="@+id/bar2"
24         style="@android:style/Widget.ProgressBar.Horizontal"
25         android:layout_width="match_parent"
26         android:layout_height="wrap_content"
27         android:max="100"
28         android:progressDrawable="@drawable/ic_launcher" >
29     </ProgressBar>
30 
31     <Button
32         android:id="@+id/btn1"
33         android:layout_width="match_parent"
34         android:layout_height="wrap_content"
35         android:text="显示进度条" />
36      <Button
37         android:id="@+id/btn2"
38         android:layout_width="match_parent"
39         android:layout_height="wrap_content"
40         android:text="不显示进度条" />
41 
42 </LinearLayout>
复制代码

2.逻辑控制

复制代码
  1 package com.example.androidprogerssbar;
  2 
  3 import android.os.Bundle;
  4 import android.os.Handler;
  5 import android.os.Message;
  6 import android.app.Activity;
  7 import android.view.Menu;
  8 import android.view.View;
  9 import android.view.View.OnClickListener;
 10 import android.view.Window;
 11 import android.widget.Button;
 12 import android.widget.ProgressBar;
 13 
 14 public class AndroidProgerssBarActivity extends Activity {
 15 
 16     // 模拟填充长度为100的数组
 17     private int[] data = new int[100];
 18     int hasData = 0;
 19     // 记录ProgressBar完成进度
 20     int status = 0;
 21 
 22     @Override
 23     protected void onCreate(Bundle savedInstanceState) {
 24         super.onCreate(savedInstanceState);
 25 
 26         //设置窗口特征,启用显示进度的进度条
 27         requestWindowFeature(Window.FEATURE_PROGRESS);
 28         //设置窗口特征,不启用显示进度的进度条
 29         requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
 30         setContentView(R.layout.activity_android_progerss_bar);
 31         Button btn1=(Button)this.findViewById(R.id.btn1);
 32         Button btn2=(Button)this.findViewById(R.id.btn2);
 33         
 34         final ProgressBar bar = (ProgressBar) this.findViewById(R.id.bar);
 35         final ProgressBar bar2 = (ProgressBar) this.findViewById(R.id.bar2);
 36 
 37         btn1.setOnClickListener(new OnClickListener() {
 38             
 39             @Override
 40             public void onClick(View arg0) {
 41                 //显示不带进度的进度条
 42                 setProgressBarIndeterminateVisibility(true);
 43                 //显示带进度的进度条
 44                 setProgressBarVisibility(true);
 45                 //设置进度条进度
 46                 setProgress(4500);
 47             }
 48         });
 49         
 50     btn2.setOnClickListener(new OnClickListener() {
 51             
 52             @Override
 53             public void onClick(View arg0) {
 54                 //显示不带进度的进度条
 55                 setProgressBarIndeterminateVisibility(false);
 56                 //显示带进度的进度条
 57                 setProgressBarVisibility(false);
 58             }
 59         });
 60     
 61         // 创建一个负责更新进度的Handler
 62         final Handler handler = new Handler() {
 63 
 64             @Override
 65             public void handleMessage(Message msg) {
 66                 // 表明消息是由该程序发送的
 67                 if (msg.what == 0x111) {
 68                     bar.setProgress(status);
 69                     bar2.setProgress(status);
 70                 }
 71             }
 72 
 73         };
 74 
 75         // 启动线程执行任务
 76         new Thread() {
 77             public void run() {
 78                 while (status < 100) {
 79                     // 获得耗时操作的完成百分比
 80                     status = doWork();
 81                     // 发送消息到Handler
 82                     Message m = new Message();
 83                     m.what = 0x111;
 84                     // 发送消息
 85                     handler.sendMessage(m);
 86                 }
 87             }
 88         }.start();
 89     }
 90 
 91     // 模拟一个耗时操作
 92     public int doWork() {
 93         data[hasData++] = (int) (Math.random() * 100);
 94         try {
 95             Thread.sleep(100);
 96         } catch (InterruptedException e) {
 97             e.printStackTrace();
 98         }
 99         return hasData;
100     }
101 
102     @Override
103     public boolean onCreateOptionsMenu(Menu menu) {
104         // Inflate the menu; this adds items to the action bar if it is present.
105         getMenuInflater().inflate(R.menu.activity_android_progerss_bar, menu);
106         return true;
107     }
108 
109 }
复制代码

本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/archive/2013/02/28/2937144.html如需转载请自行联系原作者


欢醉

相关文章
|
Android开发
解决圆形进度条ProgressBar的几个问题
Android自带的Progressbar默认就是圆形的,可以通过设置style属性 style="?android:attr/progressBarStyleHorizontal" 复制代码 这样就能变成条状进度条,如下: <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"/>
1246 0
|
5月前
|
Java API Android开发
19. 【Android教程】进度条 ProgressBar
19. 【Android教程】进度条 ProgressBar
111 4
|
6月前
|
数据处理 C# UED
42.c#:progressbar控件
42.c#:progressbar控件
57 1
|
6月前
|
Android开发 UED
[Android]ProgressBar进度条
[Android]ProgressBar进度条
73 0
|
缓存 Java API
#7,Android开发 控件 ProgressBar 进度条
#7,Android开发 控件 ProgressBar 进度条
|
Java API Android开发
ProgressBar(进度条)
本节给大家带来的是Android基本UI控件中的ProgressBar(进度条),ProgressBar的应用场景很多,比如 用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条;或者当在进行一些比较 耗时的操作,需要等待一段较长的时间,这个时候如果没有提示,用户可能会以为程序Carsh或者手机死机 了,这样会大大降低用户体验,所以在需要进行耗时操作的地方,添加上进度条,让用户知道当前的程序 在执行中,也可以直观的告诉用户当前任务的执行进度等!使用进度条可以给我带来这样的便利!
117 0
|
C# 数据库 UED
C#-WPF ProgressBar进度条
进度条常用在加载,下载,导出一些比较耗时的地方,利用进度条能让用户看到实时进展,能有更好的用户体验……
595 0
Dialog和DialogFragment 设置背景透明
Dialog和DialogFragment 设置背景透明
1014 0
|
XML Android开发 数据格式
Android ProgressBar进度条,以及自定义显示
Android ProgressBar进度条,以及自定义显示
402 0
Android ProgressBar进度条,以及自定义显示
|
前端开发 JavaScript HTML5
html+css+js 快速打造进度条
html进度条在web播放器中很常见,之前html并没有进度条这个标签,html5后出了一个progress标签作为进度条,但是并不是很好用,那么接下来,我们将用css+html+js实现进度条效果,无需任何三方框架。
4585 0