シークバーをカスタマイズする必要があります。これを実現するために、layer-list
XML ファイルを使用して、シークバーの背景として設定しています。
には@android:id/background
ビットマップを、secondaryProgress
とprogress
にはシェイプを使用しています。
これは 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">
<bitmap
android:src="@drawable/progressbar_bg"
android:tileMode="repeat" />
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<solid android:color="#B2B2B2" />
<corners android:radius="5dp" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#E00072" />
<corners android:radius="5dp" />
</shape>
</clip>
</item>
</layer-list>
そして、SeekBar を宣言する方法は次のとおりです。
<SeekBar
android:id="@+id/seekBar1"
android:thumb="@drawable/progressbar_thumb"
android:progressDrawable="@drawable/custom_seek_bar"
android:background="@drawable/progressbar_bg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_toLeftOf="@id/video_total_time"
android:layout_toRightOf="@id/video_time_played" />
問題は、SeekBar の高さが新しい高さに縮小されないことです。これは、背景画像の高さと同じになると予想しています。代わりに、空白で満たされた領域が表示されます。
空白がどこから来て、それを取り除く方法を知っていますか?