Android开发之进度条ProgressBar的示例代码

  

<强>说明

  

ProgressBar一般用于显示一个过程,例如数据加载过程,文件下载进度,音乐播放进度等。

  

<强>默认形式ProgressBar

  

默认方式下,ProgressBar显示为圆形进度,循环转圈,不显示具体的进度值,控制其显隐藏即可,如下

  

 Android开发之进度条ProgressBar的示例代码

  

<>强适用于界面加载

     //xml中   & lt; ProgressBar   android: layout_width=" wrap_content "   android: layout_height=" wrap_content "/比;//代码中控制显隐藏   mProgressBar=(ProgressBar) findViewById (R.id.progress_bar_main);   mProgressBar.setVisibility (View.VISIBLE);      

<强>横向ProgressBar

  

横向带进度的进度条,通过设置ProgressBar的风格为

  

 Android开发之进度条ProgressBar的示例代码

  

max属性指定进度条总进度值,进步设置当前进度值,也可以说是初始进度值

     //xml中   & lt; ProgressBar   android: id=癅 + id/progress_bar_h”      android: layout_width=" 85 dp”   android: layout_height=" 10 dp”   android: layout_gravity="中心"   android: max=" 100 "   android:进步=" 50 "/在      

<强>设进度条背景

  

系统自带的进度条的颜色比较单调,实际开发中使用较少,可以自定义进度条背景,新建一个progressbar_bg.xml文件

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; layer-list xmlns: android=" http://schemas.android.com/apk/res/android "比;   & lt; !——设置背景色——比;   & lt;项目android: id=" @android: id/背景”   android:可拉的=癅mipmap/feed_grow_progress_bar”比;   & lt;/item>      & lt; !——设置进度条颜色——比;   & lt;项目android: id=" @android: id/进展”比;   & lt; clip>   & lt; shape>      & lt;梯度   android: endColor=" # fff000”   android: startColor=" # fff000 "/比;   & lt;/shape>   & lt;/clip>   & lt;/item>   & lt;/layer-list>      

梯度可以设置进度条的渐变色,android: endColor和android: startColor可以设置渐变开始和结束的颜色。定义完成以后,便可以使用

        & lt; ProgressBar   android: id=癅 + id/progress_bar_healthy”      android: layout_width=" 85 dp”   android: layout_height=" 10 dp”   android: layout_marginTop=" 20 dp”   android: layout_gravity="中心"   android: max=" 100 "   android:进步=" 50 "   android: progressDrawable=" @drawable/progressbar_bg”/在      

效果图,这里设置了黄色矩形背景,及黄色进度条

  

 Android开发之进度条ProgressBar的示例代码

  

<强>动态设置

  

在音乐进度,网络下载时,需动态加载进度条,默认情况下,设置进度条,使用setProgress()即可。但有时除了动态设置进度,仍需要动态设置进度条颜色

        私人空间setElectircProgress (int, int颜色){   ClipDrawable可拉的=new ClipDrawable(新ColorDrawable(颜色),重力。离开,ClipDrawable.HORIZONTAL);   progressBarElectric.setProgressDrawable(可拉的);   progressBarElectric.setProgress(我);   }      

<强>音乐播放实例

  

通过媒体播放器播放音乐并获取进度,设置进度

  

 Android开发之进度条ProgressBar的示例代码

        musicProgressBar=(ProgressBar) findViewById (R.id.progress_bar_music);      如果(媒体播放器!=null) {   mPlayer.release ();   媒体播放器=零;   }   媒体播放器=媒体播放器。创建(这个,R.raw.summer);   mPlayer.start ();   musicProgressBar.setMax (mPlayer.getDuration ());   如果(计时器!=null) {   计时器=零;   timerTask=零;   }   计时器=new计时器();   timerTask=new timerTask () {   @Override   公共空间run () {   如果(媒体播放器!=null) {   如果(mPlayer.isPlaying ()) {   runOnUiThread(新Runnable () {   @Override   公共空间run () {   musicProgressBar.setProgress (mPlayer.getCurrentPosition ());   }   });   }   }   }   };   计时器。日程安排(timerTask, 0, 1000);

Android开发之进度条ProgressBar的示例代码