March 12, 2016 · Android

9patchを使わないでSeekBarの色を変える

9patchを使う方法もあるんですが、単純に色変えるだけで9patchを作るのは手間なので
xmlだけでprogress, secondaryProgress, backgroundを変更していきます

1.layer_seek.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">
    <shape>
      <solid android:color="@color/white_50"/>
    </shape>
  </item>

  <item android:id="@android:id/secondaryProgress">
    <clip>
      <shape>
        <solid android:color="@android:color/white"/>
      </shape>
    </clip>
  </item>

  <item android:id="@android:id/progress">
    <clip>
      <shape>
        <solid android:color="@color/lima"/>
      </shape>
    </clip>
  </item>
</layer-list>  

2.作ったlayer-listをandroid:progressDrawableに設定

<SeekBar  
      android:id="@+id/media_progress"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerVertical="true"
      android:layout_toLeftOf="@id/time_duration"
      android:layout_toRightOf="@id/time_current"
      android:maxHeight="2dp"
      android:progressDrawable="@drawable/layer_seek"
      android:thumb="@drawable/ic_seek_thumb"
      />