私はカスタムSeekBarを持っています:
<SeekBar
android:id="@+id/seekBar"
android:layout_width="@dimen/seekbar_width"
android:layout_height="wrap_content"
android:paddingTop="15px"
android:paddingBottom="15px"
android:secondaryProgress="0"
android:progress="0"
style="@style/CustomSeekBar"/>
このスタイルで:
<style name="CustomSeekBar">
<item name="android:layout_width">@dimen/seekbar_width</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:progressDrawable">@drawable/custom_seekbar_progress</item>
<item name="android:thumb">@drawable/slider_bar_grip</item>
</style>
レイヤーリストを使用する場合は、2つのタイプを試しました。最初に9つのパッチ画像:
<?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/slider_bar_track"></item>
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/slider_bar_track"></item>
<item android:id="@android:id/progress" android:drawable="@drawable/slider_bar_hlt" ></item>
</layer-list>
次に、アイテムとグラデーションを使用します。
<?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>
<corners android:bottomLeftRadius="4px" android:topLeftRadius="4px" android:topRightRadius="4px" android:bottomRightRadius="4px"/>
<gradient android:startColor="@color/dark_grey" android:endColor="@color/light_grey" android:angle="-90.0" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:bottomLeftRadius="4px" android:topLeftRadius="4px" android:topRightRadius="4px" android:bottomRightRadius="4px"/>
<gradient android:startColor="@color/dark_grey" android:endColor="@color/light_grey" android:angle="-90.0" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:bottomLeftRadius="4px" android:topLeftRadius="4px" android:topRightRadius="4px" android:bottomRightRadius="4px"/>
<gradient android:startColor="@color/orange" android:endColor="@color/orange" android:centerColor="@color/light_orange" android:angle="90.0" />
</shape>
</clip>
</item>
</layer-list>
これはどのように見えるべきかです:
画像の場合は次のようになります。 高さが高すぎます(進行状況、背景、親指のpngはすべて12ピクセルの高さですが、背景と進行状況のpngの上下に透明なピクセルがあり、同じ高さになっています) Iこれらの3つのファイルを、同じサイズのすべての密度のresフォルダーに配置します(私が望むように)。また、進行状況は常にSeekBarの幅全体に広がります。レイヤーリストの順序を変更しようとしましたが、役に立ちませんでした。
レイヤーリストのシェイプを使用すると、次のようになります。 少なくとも、進行状況は正しいですが、高さが高すぎます。
この場合、すべての密度で同じ高さ(dpではなく12px)である必要があります。スクリーンショットはxhdpiデバイスからのものです。プログレスドローアブルの高さは、mdpiデバイスのサムと同じです。どうすればそれらをすべてのデバイスで同じように見せ、プログレスドローアブルを親指よりも小さくすることができますか?