java.lang.Object   ↳android.view.View    ↳android.widget.ProgressBar直接子类AbsSeekBar间接子类RatingBar, SeekBar

在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。这种模式常用于应用程序使用任务的长度是未知的。进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中

1、android.widget. ProgressBar,继承自android.view.View 。在android.widget包中。对应对话框ProgressDialog。ProgressBar有两种展示方式,表盘形式(普通、小、大)和条形填充形式。在layout定义时,需要通过设施style属性类设置展示方式。

ProgressBar的样式有四种:

android:progressBarStyle:默认进度条样式,不确定模式
android:progressBarStyleHorizontal:水平进度条样式
android:progressBarStyleLarge :大号进度条样式,也是不确定进度模式

android:progressBarStyleSmall :小号进度条样式,也是不确定进度模式

二、XML重要属性

android:max-- 这事进度条长度最大值

android:progress--设定度条当前进度值

android:secondaryProgress--第二进度条进度值

    android:progressBarStyle:默认进度条样式

    android:progressBarStyleHorizontal:水平样式

style="?android:attr/progressBarStyleLarge" --- 属性风格类型--大圆圈,如下图

style=”?android:attr/progressBarStyleSmall”--- 属性风格类型--小圆圈,如下图:

style="?android:attr/progressBarStyleHorizontal" --水平进度条 --如下图:

几秒钟之后自动滚到到如下:

也可以用下面的形式代替上面的形式的:

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>//中<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/> //大圆<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/> //小圆


三、重要方法

    getMax():返回这个进度条的范围的上限

    getProgress():返回当前进度值

    getSecondaryProgress():返回次要当前进度值

    incrementProgressBy(int diff):指定增加的进度--即步长

    isIndeterminate():指示进度条是否在不确定模式下

    setIndeterminate(boolean indeterminate):设置不确定模式下

    setVisibility(int v):设置该进度条是否可视

四、重要事件

    onSizeChanged(int w, int h, int oldw, int oldh):当进度值改变时引发此事件

接下来看案例:

1.定义一个布局文件progressbar.xml

<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="fill_parent"    android:layout_height="match_parent"    >    <LinearLayout         android:layout_width="fill_parent"        android:layout_height="match_parent"        android:orientation="vertical"><TextView     android:id="@+id/startText"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="垂直的----标题上面也有一个进度条哦"    android:textColor="#CD0000"    android:background="#BC8F8F"    />   <!-- style=”?android:attr/progressBarStyleLarge”大圆圈 -->    <ProgressBar       android:id="@+id/progtessBer_btn_id1"      android:layout_width="wrap_content"       android:layout_height="wrap_content"       style="?android:attr/progressBarStyleLarge"        />     <!-- style=”?android:attr/progressBarStyleSmall”小圆圈 -->    <ProgressBar       android:layout_width="wrap_content"       android:layout_height="wrap_content"       style="?android:attr/progressBarStyleSmall"       android:layout_gravity="center_horizontal"        />    <TextView     android:id="@+id/startText1"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="水平的"    android:textColor="#aaaaaa"    />     <!--  style="?android:attr/progressBarStyleHorizontal"  水平进度条 -->    <ProgressBar      android:id="@+id/progtessBer_btn_id2"     android:layout_width="fill_parent"      android:layout_height="wrap_content"      style="?android:attr/progressBarStyleHorizontal"     />    <TextView      android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:text="@string/progress_text"     />    </LinearLayout></ScrollView>

2.之后定义java文件:ProgressBarDemo.java

package com.dream.app.start.first.prograssbar;import com.dream.app.start.MenuDemo;import com.dream.app.start.R;import com.dream.app.start.R.id;import com.dream.app.start.R.layout;import com.dream.app.start.utils.PublicClass;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.text.method.ScrollingMovementMethod;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;public class ProgressBarDemo extends PublicClass {private ProgressBar  progressbar,progressbar_1;Button  btn1,btn2;private int  prostatus=0;    //创建一个handler对象private  Handler  handler=new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);  //在标题条里放置进度条。请求窗口特色风格,这里设置成不明确的进度风格          requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);           //设置窗口进度条特性风格//         requestWindowFeature(Window.FEATURE_PROGRESS);           setContentView(R.layout.progressbar);      //设置标题栏中的不明确的进度条是否可以显示,当你需要表示处理中的时候设置为True,处理完毕后设置为false      setProgressBarIndeterminateVisibility(true);            //设置进度条进度值,要乘以100的//          setProgress(60*100);//          setSecondaryProgress(80*100);btn2=(Button)findViewById(R.id.button_cancel);//btn2.setOnClickListener(onClick);progressbar=(ProgressBar)findViewById(R.id.progtessBer_btn_id2);progressbar_1=(ProgressBar)findViewById(R.id.progtessBer_btn_id1);//设置进度条的最大值progressbar.setMax(100000);progressbar_1.setMax(100000);//新开启一个进程new Thread(new Runnable() {@Overridepublic void run() {// 循环1000次,不断地更新prostatus状态值while (prostatus++<100000) {//将一个Runnable对象添加到消息队列中去//并且当执行该对象的时候,执行runhandler.post(new Runnable() {@Overridepublic void run() {//重新设置进度条当前的值progressbar.setProgress(prostatus);progressbar_1.setProgress(prostatus);}});}}}).start();}//toast方法private void toastshow(String str) {Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();}}

运行效果如下:


二:用图片实现滚动效果:

1.添加图片到drawable下

2.自定义图片资源文件iamge_progress.xml

<?xml version="1.0" encoding="utf-8"?><animated-rotate     xmlns:android="http://schemas.android.com/apk/res/android"android:drawable="@drawable/image_progress"android:pivotX="50%"android:pivotY="50%" />

3.定义布局文件,progress.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"><ProgressBarandroid:indeterminateDrawable="@drawable/drawable_progress"android:layout_height="100dp" android:layout_width="100dp"/></LinearLayout>

运行效果如下:

三》自定义渐变色进度条:

定义drawable资源文件color_progressbar.xml

<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <item android:id="@android:id/background">       <shape>           <corners android:radius="5dip" />           <gradient android:startColor="#ff9d9e9d"                   android:centerColor="#ff5a5d5a"                   android:centerY="0.75"                   android:endColor="#ff747674"                   android:angle="270"           />       </shape>   </item>   <item android:id="@android:id/secondaryProgress">       <clip>           <shape>               <corners android:radius="5dip" />               <gradient android:startColor="#80ffd300"                       android:centerColor="#80ffb600"                       android:centerY="0.75"                       android:endColor="#a0ffcb00"                       android:angle="270"               />           </shape>       </clip>   </item>   <item android:id="@android:id/progress"   >       <clip>           <shape>               <corners android:radius="5dip" />               <gradient android:startColor="#FF3030"                   android:endColor="#AEEEEE"                   android:angle="270" />           </shape>       </clip>   </item> </layer-list>

2.定义对应的不布局文件:progressbar.xml在此文件中引用我们定义的drawable资源配置文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"><ProgressBar                android:id="@+id/color_progressBar"android:indeterminateDrawable="@drawable/color_progress"android:layout_height="wrap_content" android:layout_width="match_parent"/></LinearLayout>

或者在代码中给进度条设置自定义资源文件:

效果如下:

四:自定义progressbar颜色:

1.定义一个图片资源文件:

<?xml version="1.0" encoding="utf-8"?>  <rotate xmlns:android="http://schemas.android.com/apk/res/android"      android:fromDegrees="0"      android:pivotX="50%"      android:pivotY="50%"      android:toDegrees="360" >        <shape          android:innerRadiusRatio="3"          android:shape="ring"          android:thicknessRatio="8"          android:useLevel="false" >            <gradient              android:centerColor="#FFFFFF"              android:centerY="0.50"              android:endColor="#FFFF00"              android:startColor="#000000"              android:type="sweep"              android:useLevel="false" />      </shape>    </rotate>  

2.定义布局文件:

<ProgressBar        android:id="@+id/color_progressBar2"android:indeterminateDrawable="@drawable/color_progress2"android:layout_height="wrap_content" android:layout_width="wrap_content"/>

3.效果:

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android“设置”里的版本号
  7. Android开发环境搭建
  8. Android(安卓)Resource介绍和使用
  9. 2014.01.21 ——— android 关联android-support源码

随机推荐

  1. WCF 实例 —— Android 短信助手 (WCF +
  2. Android(安卓)- SQLite
  3. 使用Android(安卓)OpenGL ES 2.0绘图之二
  4. Android面试过程描述
  5. 华为发布全新IDE:DevCro Studio,Facebook正
  6. 微信稳居Android App排行榜4月份国内榜首
  7. 谈Android终端厂商的如何建设 ——
  8. Android Socket与HTTPS校验
  9. Android(安卓)点击通知栏消息打开activit
  10. 一起Talk Android吧(第二百六十五回:Androi