Android開發(fā)之進(jìn)度條ProgressBar的示例代碼
說明
ProgressBar一般用于顯示一個過程,例如數(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),實際開發(fā)中使用較少,可以自定義進(jìn)度條背景,新建一個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)度條
動態(tài)設(shè)置
在音樂進(jìn)度,網(wǎng)絡(luò)下載時,需動態(tài)加載進(jìn)度條,默認(rèn)情況下,設(shè)置進(jìn)度條,使用setProgress()即可。但有時除了動態(tài)設(shè)置進(jìn)度,仍需要動態(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); }
音樂播放實例
通過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);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android編程之ProgressBar圓形進(jìn)度條顏色設(shè)置方法
- android ListView和ProgressBar(進(jìn)度條控件)的使用方法
- Android三種方式實現(xiàn)ProgressBar自定義圓形進(jìn)度條
- Android實現(xiàn)進(jìn)度條(ProgressBar)的功能與用法
- Android ProgressBar進(jìn)度條使用詳解
- Android編程實現(xiàn)自定義ProgressBar樣式示例(背景色及一級、二級進(jìn)度條顏色)
- Android ProgressBar進(jìn)度條和ProgressDialog進(jìn)度框的展示DEMO
- Android進(jìn)度條控件progressbar使用方法詳解
- Android ProgressBar直線進(jìn)度條的實例代碼
- Android ProgressBar實現(xiàn)進(jìn)度條效果
相關(guān)文章
Java4Android開發(fā)教程(一)JDK安裝與配置
本文是Android開發(fā)系列教程的第一篇,主要為大家?guī)淼氖情_發(fā)環(huán)境的準(zhǔn)備工作,JDK安裝與配置圖文教程,非常的詳細(xì),有需要的朋友可以參考下2014-10-10Android自定義實現(xiàn)可回彈的ScollView
這篇文章主要為大家詳細(xì)介紹了Android自定義實現(xiàn)可回彈的ScollView,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用詳情
這篇文章主要介紹了Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用,如果我們只是需要讓用戶能夠拍攝照片,則可以直接請求已有相機(jī)應(yīng)用拍攝照片并將照片返回給我們,下面我們一起來看看這些功能,需要的朋友可以參考一下2021-10-10關(guān)于android studio通過命令行運行g(shù)radle編譯命令的問題
這篇文章主要介紹了關(guān)于android studio通過命令行運行g(shù)radle編譯命令的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11Android 進(jìn)程間通信實現(xiàn)原理分析
只有你允許客戶端從不同的應(yīng)用程序為了進(jìn)程間的通信而去訪問你的service,以及想在你的service處理多線程,下面為大家詳細(xì)介紹下2013-06-06Kotlin實現(xiàn)在類里面創(chuàng)建main函數(shù)
這篇文章主要介紹了Kotlin實現(xiàn)在類里面創(chuàng)建main函數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03