LoginSignup
41
42

More than 5 years have passed since last update.

ProgressBarをカスタマイズする

Posted at

普通のProgressBarの置き方

ProgressBar のスタイルを ?android:progressBarStyleHorizontal に設定する。

<ProgressBar
    style="?android:progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

カスタマイズしたProgressBarの置き方

android:id/backgroundandroid:id/progressandroid:id/secondaryProgress を含む <layer-list> Drawableを作成し、android:progressDrawable に設定する。

<ProgressBar
    style="?android:progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:progressDrawable="@drawable/progress" />
res/drawable/progress.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <!-- 背景 -->
  <item android:id="@android:id/background">
    <color android:color="#000" />
  </item>

  <!-- android:secondaryProgress用のDrawable -->
  <item android:id="@android:id/secondaryProgress">
    <clip>
      <color android:color="#9f00" />
    </clip>
  </item>

  <!-- android:progress用のDrawable -->
  <item android:id="@android:id/progress">
    <clip>
      <color android:color="#f00" />
    </clip>
  </item>

</layer-list>

上記例ではシンプルに一色を指定しているが、Bitmapや9patchを使ってより複雑な見た目にすることも可能。

実行例

実行例

中央の赤いバーが例の res/drawable/progress.xml でカスタマイズしたProgressBar。 android:minHeight="4dp" も指定している。

41
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
42