Android開發(fā)之進(jìn)度條ProgressBar的示例代碼
說明
ProgressBar一般用于顯示一個(gè)過程,例如數(shù)據(jù)加載過程,文件下載進(jìn)度,音樂播放進(jìn)度等。
默認(rèn)形式ProgressBar
默認(rèn)方式下,ProgressBar顯示為圓形進(jìn)度,循環(huán)轉(zhuǎn)圈,不顯示具體的進(jìn)度值,控制其顯隱藏即可,如下

適用于界面加載
//xml中 <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> //代碼中控制顯隱藏 mProgressBar = (ProgressBar) findViewById(R.id.progress_bar_main); mProgressBar.setVisibility(View.VISIBLE);
橫向ProgressBar
橫向帶進(jìn)度的進(jìn)度條,通過設(shè)置ProgressBar的Style為style="?android:attr/progressBarStyleHorizontal"

max屬性指定進(jìn)度條總進(jìn)度值,progress設(shè)置當(dāng)前進(jìn)度值,也可以說是初始進(jìn)度值
//xml中 <ProgressBar android:id="@+id/progress_bar_h" style="?android:attr/progressBarStyleHorizontal" android:layout_width="85dp" android:layout_height="10dp" android:layout_gravity="center" android:max="100" android:progress="50" />
設(shè)進(jìn)度條背景
系統(tǒng)自帶的進(jìn)度條的顏色比較單調(diào),實(shí)際開發(fā)中使用較少,可以自定義進(jìn)度條背景,新建一個(gè)progressbar_bg.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 設(shè)置背景色 -->
<item android:id="@android:id/background"
android:drawable="@mipmap/feed_grow_progress_bar">
</item>
<!-- 設(shè)置進(jìn)度條顏色 -->
<item android:id="@android:id/progress">
<clip>
<shape>
<gradient
android:endColor="#fff000"
android:startColor="#fff000" />
</shape>
</clip>
</item>
</layer-list>
gradient可以設(shè)置進(jìn)度條的漸變色, android:endColor和 android:startColor可以設(shè)置漸變開始和結(jié)束的顏色。定義完成以后,便可以使用
<ProgressBar android:id="@+id/progress_bar_healthy" style="?android:attr/progressBarStyleHorizontal" android:layout_width="85dp" android:layout_height="10dp" android:layout_marginTop="20dp" android:layout_gravity="center" android:max="100" android:progress="50" android:progressDrawable="@drawable/progressbar_bg" />
效果圖,這里設(shè)置了黃色矩形背景,及黃色進(jìn)度條

動(dòng)態(tài)設(shè)置
在音樂進(jìn)度,網(wǎng)絡(luò)下載時(shí),需動(dòng)態(tài)加載進(jìn)度條,默認(rèn)情況下,設(shè)置進(jìn)度條,使用setProgress()即可。但有時(shí)除了動(dòng)態(tài)設(shè)置進(jìn)度,仍需要?jiǎng)討B(tài)設(shè)置進(jìn)度條顏色
private void setElectircProgress(int i, int color) {
ClipDrawable drawable = new ClipDrawable(new ColorDrawable(color), Gravity.LEFT, ClipDrawable.HORIZONTAL);
progressBarElectric.setProgressDrawable(drawable);
progressBarElectric.setProgress(i);
}
音樂播放實(shí)例
通過MediaPlayer 播放音樂并獲取進(jìn)度,設(shè)置進(jìn)度

musicProgressBar = (ProgressBar) findViewById(R.id.progress_bar_music);
if (mPlayer != null) {
mPlayer.release();
mPlayer = null;
}
mPlayer = MediaPlayer.create(this, R.raw.summer);
mPlayer.start();
musicProgressBar.setMax(mPlayer.getDuration());
if (timer != null) {
timer = null;
timerTask = null;
}
timer = new Timer();
timerTask = new TimerTask() {
@Override
public void run() {
if (mPlayer != null) {
if (mPlayer.isPlaying()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
musicProgressBar.setProgress(mPlayer.getCurrentPosition());
}
});
}
}
}
};
timer.schedule(timerTask, 0, 1000);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android編程之ProgressBar圓形進(jìn)度條顏色設(shè)置方法
- android ListView和ProgressBar(進(jìn)度條控件)的使用方法
- Android三種方式實(shí)現(xiàn)ProgressBar自定義圓形進(jìn)度條
- Android實(shí)現(xiàn)進(jìn)度條(ProgressBar)的功能與用法
- Android ProgressBar進(jìn)度條使用詳解
- Android編程實(shí)現(xiàn)自定義ProgressBar樣式示例(背景色及一級(jí)、二級(jí)進(jìn)度條顏色)
- Android ProgressBar進(jìn)度條和ProgressDialog進(jìn)度框的展示DEMO
- Android進(jìn)度條控件progressbar使用方法詳解
- Android ProgressBar直線進(jìn)度條的實(shí)例代碼
- Android ProgressBar實(shí)現(xiàn)進(jìn)度條效果
相關(guān)文章
android Bitmap圓角與倒影的具體實(shí)現(xiàn)代碼
android Bitmap圓角與倒影的具體實(shí)現(xiàn)代碼,需要的朋友可以參考一下2013-06-06
Android 解決build path errors的問題
這篇文章主要介紹了Android 解決build path errors的問題的相關(guān)資料,需要的朋友可以參考下2016-09-09
Android?PickerScrollView滑動(dòng)選擇控件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android?PickerScrollView滑動(dòng)選擇控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Android實(shí)現(xiàn)帶附件的郵件發(fā)送功能
這篇文章主要介紹了Android實(shí)現(xiàn)帶附件的郵件發(fā)送功能的相關(guān)資料,android發(fā)送郵件有兩種方式,本文重點(diǎn)介紹基于JMail實(shí)現(xiàn)郵件發(fā)送功能,感興趣的小伙伴們可以參考一下2016-01-01
Android實(shí)現(xiàn)點(diǎn)擊兩次返回鍵退出
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)點(diǎn)擊兩次返回鍵退出的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android中編寫屬性動(dòng)畫PropertyAnimation的進(jìn)階實(shí)例
這篇文章主要介紹了Android中編寫屬性動(dòng)畫PropertyAnimation的進(jìn)階實(shí)例,包括一些縮放和淡入淡出效果的設(shè)計(jì),強(qiáng)大且不算復(fù)雜,需要的朋友可以參考下2016-04-04
AndroidGUI27中findViewById返回null的快速解決辦法
這篇文章主要介紹了AndroidGUI27中findViewById返回null的快速解決辦法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
Android中懸浮窗口的實(shí)現(xiàn)原理實(shí)例分析
這篇文章主要介紹了Android中懸浮窗口的實(shí)現(xiàn)原理,以實(shí)例形式較為詳細(xì)的分析了Android懸浮窗口的原理與具體實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10

