<强>说明强>
ProgressBar一般用于显示一个过程,例如数据加载过程,文件下载进度,音乐播放进度等。
<强>默认形式ProgressBar 强>
默认方式下,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的风格为
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”/在
效果图,这里设置了黄色矩形背景,及黄色进度条
<强>动态设置强>
在音乐进度,网络下载时,需动态加载进度条,默认情况下,设置进度条,使用setProgress()即可。但有时除了动态设置进度,仍需要动态设置进度条颜色
私人空间setElectircProgress (int, int颜色){ ClipDrawable可拉的=new ClipDrawable(新ColorDrawable(颜色),重力。离开,ClipDrawable.HORIZONTAL); progressBarElectric.setProgressDrawable(可拉的); progressBarElectric.setProgress(我); }
<强>音乐播放实例强>
通过媒体播放器播放音乐并获取进度,设置进度
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的示例代码