1

我创建了一个自定义搜索栏,它适用于 4.1 设备,但在 4.2 和 4.3 设备上它不显示我的背景,它只是将其留空。

这就是我所做的:

mySeekbar.setProgressDrawable(getResources().getDrawable(R.drawable.seekbar_progress));
mySeekbar.setBackgroundDrawable(getResources().getDrawable(R.drawable.slider_shape));

seekbar_progress.xml:

<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android">
<item 
    android:id="@android:id/background">
        <bitmap 
            android:src="@drawable/slider_background_part"
            android:tileMode="repeat">
        </bitmap>
</item>
<item 
    android:id="@android:id/progress">
    <layer-list 
        xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <clip>
               <color
                   xmlns:android="http://schemas.android.com/apk/res/android"
                   android:color="@color/my_slider_color"/>
            </clip>
        </item>
        <item>
            <clip >
                <bitmap 
                    xmlns:android="http://schemas.android.com/apk/res/android"
                    android:src="@drawable/slider_foreground_part"
                    android:tileMode="repeat"/>
            </clip>
        </item>
    </layer-list>
</item>

在这个文件中,我为进度和背景重复了一个图像,对于进度,我给它一个特定的颜色。然后我仍然需要为我的背景设置一个形状。如果我不这样做,背景就会保持空白。

滑块形状.xml:

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="0dp"/>
</shape>

有人可以在这里帮助我吗?

4

0 回答 0