前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >进度条ProgressBar

进度条ProgressBar

作者头像
欢醉
发布2018-01-22 10:33:46
2.6K0
发布2018-01-22 10:33:46
举报

拖动滑块改变图片透明度

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 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-02-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档