中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Android開發之進度條ProgressBar的示例代碼

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

說明

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

默認形式ProgressBar

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

Android開發之進度條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開發之進度條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"
  />

設進度條背景

系統自帶的進度條的顏色比較單調,實際開發中使用較少,可以自定義進度條背景,新建一個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開發之進度條ProgressBar的示例代碼

動態設置

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

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開發之進度條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問一下細節

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

AI

将乐县| 苗栗市| 元朗区| 星座| 沙湾县| 临城县| 正宁县| 九龙坡区| 衡南县| 灯塔市| 泸水县| 方正县| 隆化县| 桐庐县| 神木县| 林西县| 绍兴县| 洛阳市| 沅陵县| 元阳县| 那曲县| 汉寿县| 舞阳县| 海丰县| 新泰市| 县级市| 山丹县| 萨嘎县| 宁远县| 正蓝旗| 石渠县| 繁昌县| 五原县| 平果县| 宜兴市| 刚察县| 建湖县| 红桥区| 德州市| 崇州市| 铁岭县|