在上图中,您可以看到第一个主页按钮处于按下状态。它没有背景颜色,我需要它是黑色的(最好是阴影,类似于其他按钮显示的默认颜色,同时保持图像)。我还需要将文本颜色更改为白色。
我有XML代码,可以根据状态更改图像,但我完全不知道如何同时更改背景颜色。
我对这个特定按钮的代码是:
<?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/ic_tab_about_pressed" /> <!-- pressed -->
<item android:state_selected="true"
android:drawable="@drawable/ic_tab_about_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/ic_tab_about_pressed" /> <!-- pressed -->
<item android:drawable="@drawable/ic_tab_about_unpressed" /><!-- default/unchecked -->
</selector>
和
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MnuBtnStyle" parent="android:style/Widget.Button">
<item name="android:ellipsize">marquee</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:singleLine">true</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_marginTop">1dip</item>
<item name="android:layout_marginBottom">1dip</item>
<item name="android:textSize">10dp</item>
<item name="android:layout_weight">1</item>
<item name="android:textColor">#000000</item>
<item name="android:typeface">monospace</item>
</style>
</resources>
我怎么能做到这一点?
更新
我对按钮的要求是:
我是否需要创建一个新的自定义控件才能实现此目的? 如果是这样,那么我最好的方法是什么,请记住这是我的第一个Android项目?
答案 0 :(得分:0)
尝试使用ImageButton代替Button:
<ImageButton
android:layout_width="60dip"
android:layout_height="60dip"
android:src="@drawable/state_btn_icon"
android:background="@drawable/state_btn_background"/>
state_btn_icon.xml定义按钮图标的不同状态
和
state_btn_background定义背景的不同状态