SeekBar setProgressDrawable不适用于Android API< = 21

时间:2018-06-11 16:35:07

标签: android

我设置我的音乐播放器Android应用程序minSdkVersion 18.当我在API 21和19上测试它时,进度的颜色不是我所期望的。 SeekBar应该看起来像图片1但它变成了图片2.(我仍然可以点击它但颜色似乎是透明的。)

enter image description here enter image description here

活动布局中SeekBar的XML代码:

<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="@8dp"
android:layout_toLeftOf="@id/full_time"
android:layout_toRightOf="@id/current_time"
android:layout_marginLeft="@16dp"
android:layout_marginRight="@16dp"
android:layout_centerVertical="true"
android:progressBackgroundTint="#E9E9E9"
android:progress="0"
android:indeterminate="false"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:progressDrawable="@drawable/seek_bar"/>

seek_bar 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>
        <corners android:radius="4dip" />
        <solid android:color="#e9e9e9"/>
    </shape>
</item>

<item android:id="@android:id/secondaryProgress">
    <clip>
        <shape>
            <corners android:radius="4dip" />
            <solid android:color="@color/colorPink"/>
        </shape>
    </clip>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="4dip" />
            <solid android:color="@color/colorPink"/>
        </shape>
    </clip>
</item>

android:progressDrawable="@drawable/seek_bar"/>行无法在API&lt; = 21上运行,即使我在活动的OnCreate方法中编写seekBar.setProgressDrawable(getResources().getDrawable(R.drawable.seek_bar));也是如此。但是,如果我在API 23上进行测试,有两种方法可以完美运行。如何设置进度颜色?

1 个答案:

答案 0 :(得分:0)

这听起来像SDK级别的问题。这可能是因为API 21中添加了progressBackgroundTint吗?我建议您将minSDK更改为&gt; = 21并再次测试。