欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年03月28日 09:00:20   作者:木子餅干  
本篇文章主要介紹了Android開發(fā)之進(jìn)度條ProgressBar的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

說明

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

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論