在我的应用程序中,我有一个搜索栏,应该有两个状态 - 聚焦和正常
也没有进展可绘制我已经在xml中设置了正常图像 -
这是我用于进展可绘制的xml
bar_normal.xml
<item
android:id="@android:id/background"
android:drawable="@drawable/black"/>
<item android:id="@android:id/secondaryProgress">
<clip android:drawable="@drawable/black" />
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/grey" />
</item>
现在,当用户触摸此搜索栏时,我想将可绘制的进度更改为橙色
为此,我使用另一个xml,在我的代码中我写这个
seekBar.setProgressDrawable(getResources()getDrawable(R.drawable.bar_focused));
bar_focused.xml
<item
android:id="@android:id/background"
android:drawable="@drawable/black"/>
<item android:id="@android:id/secondaryProgress">
<clip android:drawable="@drawable/black" />
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/orange" />
</item>
最初,条形显示正常,进度显示为灰色和背景,次要进度为黑色,但是当我触摸搜索条使其变为橙色时, 整个酒吧变黑了。它的工作仍然很好,但我看不到橙色。
请帮助!
答案 0 :(得分:0)
你不能使用状态更改drawable,让Os为你做, android默认的seekbar drawable是:
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_pressed" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:drawable="@drawable/seek_thumb_normal" />
</selector>
Ps:如果你可以绘制图像或在xml中为你的情况定义它应该是没有区别(bar_drawable.xml):
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/bar_focused" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/bar_focused" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/bar_focused" />
<item android:drawable="@drawable/bar_normal" />