溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發(fā)之進度條ProgressBar的示例代碼

發(fā)布時間:2020-09-26 00:01:24 來源:腳本之家 閱讀:248 作者:木子餅干 欄目:移動開發(fā)

說明

ProgressBar一般用于顯示一個過程,例如數(shù)據(jù)加載過程,文件下載進度,音樂播放進度等。

默認形式ProgressBar

默認方式下,ProgressBar顯示為圓形進度,循環(huán)轉圈,不顯示具體的進度值,控制其顯隱藏即可,如下

Android開發(fā)之進度條ProgressBar的示例代碼

適用于界面加載

//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

橫向帶進度的進度條,通過設置ProgressBar的Style為

Android開發(fā)之進度條ProgressBar的示例代碼

max屬性指定進度條總進度值,progress設置當前進度值,也可以說是初始進度值

//xml中
  <ProgressBar
  android:id="@+id/progress_bar_h"
  
  android:layout_width="85dp"
  android:layout_height="10dp"
  android:layout_gravity="center"
  android:max="100"
  android:progress="50"
  />

設進度條背景

系統(tǒng)自帶的進度條的顏色比較單調,實際開發(fā)中使用較少,可以自定義進度條背景,新建一個progressbar_bg.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"
  android:drawable="@mipmap/feed_grow_progress_bar">
</item>

<!-- 設置進度條顏色 -->
<item android:id="@android:id/progress">
  <clip>
    <shape>

      <gradient
        android:endColor="#fff000"
        android:startColor="#fff000" />
    </shape>
  </clip>
</item>
</layer-list>

gradient可以設置進度條的漸變色, android:endColor和 android:startColor可以設置漸變開始和結束的顏色。定義完成以后,便可以使用

<ProgressBar
  android:id="@+id/progress_bar_healthy"
  
  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"
  />

效果圖,這里設置了黃色矩形背景,及黃色進度條

Android開發(fā)之進度條ProgressBar的示例代碼

動態(tài)設置

在音樂進度,網(wǎng)絡下載時,需動態(tài)加載進度條,默認情況下,設置進度條,使用setProgress()即可。但有時除了動態(tài)設置進度,仍需要動態(tài)設置進度條顏色

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 播放音樂并獲取進度,設置進度

Android開發(fā)之進度條ProgressBar的示例代碼

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);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI