我正在创建一个应用程序,您可以在其中设计自己的自定义搜索栏并进行应用内预览以帮助开发人员。现在我有这个XML代码来处理搜索栏:
<?xml version="1.0" encoding="UTF-8"?>
<item
android:id="@android:id/background"
android:drawable="@drawable/background_fill"/>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/progress_fill" />
</item>
我在我的java代码中使用GradientDrawable来改变搜索栏的背景,但是当我这样做时,它不会改变搜索栏的背景但是在搜索栏后面。此外,当我更改progressDrawable时,它会使用新背景填充整个搜索栏,而不仅仅是进度。 我尝试过创建一个LayerDrawable和一个ClipDrawable,但我现在还不知道如何更改我的图层列表中这些特定项目的drawable。
图片:
答案 0 :(得分:0)
好的,所以我找到了解决方案。 您创建一个名为layers的可绘制数组,如下所示:
Drawable[] layers = {new ColorDrawable(0xff000044), new ClipDrawable(seekbardraw, Gravity.LEFT, ClipDrawable.HORIZONTAL)};
然后使用此代替customseekbar.setProgressDrawable(drawable);
:
customseekbar.setProgressDrawable(new LayerDrawable(layers));