进度条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 }

时间: 2024-10-26 22:38:00

进度条ProgressBar的相关文章

自定义圆形进度条ProgressBar的三种方式

http://liuzhichao.com/p/636.html 进度条默认是不确定(indeterminate=true)Android进度条 Android进度条有4种风格可以使用. 默认值是progressBarStyle. 设置成progressBarStyleSmall后,图标变小. 设置成progressBarStyleLarge后,图标变大 设置成progressBarStyleHorizontal后,变成横向长方形. 自定义圆形进度条ProgressBar的一般有三种方式: 一.

Android零基础入门第51节:进度条ProgressBar

原文:Android零基础入门第51节:进度条ProgressBar    不知不觉这已经是第51期了,在前面50期我们学了Android开发中使用频率非常高的一些UI组件,当然这些组件还不足够完成所有APP的开发,还会经常用到一些诸如进度条.拖动条.搜索框.时间和日期选择器等组件,那么后面几期就来一起学习这些高级组件.     一.ProgressBar系列组件       ProgressBar也是一组重要的组件,ProgressBar本身代表了进度条组件,它还派生了两个常用的组件:Seek

我的Android进阶之旅------&amp;gt;Android之进度条(ProgressBar)的功能和用法

一.简介        进度条是UI界面中一种非常实用的组件,退出用于向用户显示某个比较耗时间的操作完成的百分比.因此进度条可以动态的显示进度,避免长时间地执行某个耗时操作, 让用户感觉程序失去了响应,从而更好的提高用户界面的友好性.         Android支持几种风格的进度条,通过style属性可以为Progress指定风格.该属性可以支持如下几个属性值.        除此之外,ProgressBar还支持下图所示常用的XML属性值. 还有一种进度条,它可以直接在窗口标题上显示,这种

进度条ProgressBar及ProgressDialog(实例)

废话不多说,直接上代码 Main代码 package processdemo.example.administrator.processbardemo; import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AppCompatActivi

java 使用进度条progressbar显示更新的问题,不能同步

问题描述 听说要想在一个frame上面,在点了一按钮的同时用progressbar进度条来显示操作的进度,得用个多线程处理.我也不要求这进度条显示多少百分比,就只要在那方法进行的时候来回摆动就行了.任务完成的时候就显示结束.privateJButtonButton=null;privateJPanelgetPane(){if(Cpane==null){pbar=newJProgressBar();pbar.setBounds(880,20,200,34);pbar.setStringPainte

Android ProgressBar进度条使用详解_Android

ProgressBar进度条,分为旋转进度条和水平进度条,进度条的样式根据需要自定义,之前一直不明白进度条如何在实际项目中使用,网上演示进度条的案例大多都是通过Button点击增加.减少进度值,使用方法incrementProgressBy(int),最简单的做法是在xml布局文件中放置ProgressBar空间,然后再MainActivity中触发事件后执行incrementProgressBy(int),代码如下: <LinearLayout xmlns:android="http:/

安卓ProgressBar水平进度条的颜色设置

安卓系统提供了水平进度条ProgressBar的样式,而我们在实际开发中,几乎不可能使用默认的样式,原因就是"太丑"^_^ 所以我们在更多的时候需要对其颜色进行自定义,主要使用就是自定义样式文件. 再在drawable目录下新增progressbar.xml文件,可以设置默认背景色和进度条的颜色 (值得一提的是支持渐变色) 代码: <layer-list xmlns:android="http://schemas.android.com/apk/res/android&

安卓开发之自定义ProgressBar简单完成颜色渐变功能进度条

我们在使用电脑或者手机时,经常会遇到进度条,比如下图: 开发之自定义ProgressBar简单完成颜色渐变功能进度条-progressbar进度条"> 今天我来演示一下,如何做出简单并且漂亮的颜色渐变进度条. 首先我先新建了一个系统默认样式的进度条,代码如下: 运行后显示如下: 大家可以看出,并不是很好看,那么下面开始进行自定义进度条的编写吧! 首先为ProgressBar设置一个drawable,代码如下: 这个代码在哪呢,请回到上面新建系统默认样式进度条时,其中一个属性为  style

Android三种方式实现ProgressBar自定义圆形进度条_Android

进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现ProgressBar自定义圆形进度条. Android进度条有4种风格可以使用. 默认值是progressBarStyle. 设置成progressBarStyleSmall后,图标变小. 设置成progressBarStyleLarge后,图标变大 设置成progressBarStyleHorizontal后,变成横向长方形. 自定义圆形进度条ProgressBar的一般有三种方式: 一.通过动画实现 定义res/a