Android 设计 SeekBar

Android style a SeekBar

我想为我的应用程序的 Seekbar 创建样式。我只想更改拇指和栏本身的颜色。

我设法像这样更改了缩略图名称:

<style name="MySeekBar" parent="@style/Widget.AppCompat.SeekBar">
    <item name="android:thumbTint"> @color/turquoise </item>        
 </style>

但我不确定如何更改栏的颜色。我知道如何用代码做到这一点,但不知道 xml:

seekBar.getProgressDrawable().setColorFilter(getContext().getResources().getColor(R.color.turquoise), Mode.SRC_ATOP);

如何使用 xml 中定义的样式设置滤色器的样式?

用您喜欢的颜色替换 android:color 属性。

background.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">

    <stroke android:width="1dp" android:color="#D9D9D9"/>
    <corners android:radius="1dp" />

</shape>

progress.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="line">

    <stroke android:width="1dp" android:color="#2EA5DE"/>
    <corners android:radius="1dp" />

</shape>

style.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/seekbar_background"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@drawable/seekbar_progress" />
    </item>

</layer-list>

或按以下方式在您的 SEEKBAR 主题上使用

由于 SeekBar 默认使用 colorAccent,您可以使用自定义颜色创建新样式 colorAccent 然后使用 theme 属性将其应用到 SeekBar .

<SeekBar>
    .
    .
    android:theme="@style/MySeekBar"
    .
</SeekBar>

在@style:

 <style name="MySeekBar" parent="@style/Widget.AppCompat.SeekBar" >
        <item name="colorAccent">#ffff00</item>
 </style>

您可以使用

android:progressTint

更改搜索栏进度部分的颜色和

android:progressBackgroundTint

以您的风格更改栏背景的颜色