问题
I want to create "button" in XML layout (if possible) which has background image based on state (this image is NOT 9-patched) and with text. Which component to use?
My button_states.xml
looks like:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/my_pressed" />
<item android:drawable="@drawable/my_normal" />
</selector>
my_pressed
and my_normal
are NON 9-patched images.
Now if I use regular button
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_states"
android:text="@string/my_text" />
button it is rendered without background image.
How to do "button" with text and stateful "static" backgrounds?
Thx
Regards
回答1:
The easiest way to accomplish this is doing it in code. Use setBackgroundDrawable()
on the (regular) Button to set the desired background. If you use your selector as the provided drawable you should be fine.
[Edit] To do this using resources, place your button_state.xml
in the res\drawable folder in use the following code:
Button button = (Button) findViewById(R.id.my_button);
button.setBackgroundResource(R.drawable.button_state);
来源:https://stackoverflow.com/questions/9499422/android-button-with-image-background-and-text-and-stateful-functionality