私のアプリには、フォーカスと通常の 2 つの状態があるはずのシーク バーがあります。
プログレスドローアブルの場合も、次のようにxmlで通常の画像を設定しました-
<SeekBar
android:id="@+id/bar"
android:layout_width="315dp"
android:layout_height="10dp"
android:layout_marginLeft="114dp"
android:layout_marginTop="210dp"
android:max="60"
android:progressDrawable="@drawable/bar_normal"
android:thumb="@null" />
そして、これがプログレスドローアブルに使用するxmlです
bar_normal.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="@drawable/black"/>
<item android:id="@android:id/secondaryProgress">
<clip android:drawable="@drawable/black" />
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/grey" />
</item>
</layer-list>
ユーザーがこのシークバーに触れると、進行状況のドローアブルをオレンジ色に変更したい
このために私は別のxmlを使用し、私のコードではこのように書きます
seekBar.setProgressDrawable(getResources().getDrawable(R.drawable.bar_focused));
bar_focused.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="@drawable/black"/>
<item android:id="@android:id/secondaryProgress">
<clip android:drawable="@drawable/black" />
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/orange" />
</item>
</layer-list>
最初はバーは問題なく表示され、進行状況は灰色と背景で示され、2 番目の進行状況は黒色で示されますが、シークバーをタッチしてオレンジ色にすると、バー全体が黒くなります。正常に動作していますが、オレンジ色が見えません。