我正在Android上制作一个应用程序,我已经制作了几个按钮,按钮是图像,问题是,你知道当你点击一个按钮看起来有点像是被按下时。您无法确定按钮何时是图像。如果您不知道我的意思是复制我的代码,然后只需将默认按钮拖到图形布局上,然后尝试按下两个按钮。
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/btnFindMe"
android:background="@drawable/iw_p"
android:text="@string/about_us" />
答案 0 :(得分:2)
在drawable文件夹中创建一个名为button_effect.xml
的新文件,并添加以下内容
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/aud_disable" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/aud_center_gray" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/aud_center_gray" />
<item
android:state_enabled="true"
android:drawable="@drawable/speaker_side" />
</selector>
这里确保为每个状态添加图像,例如按钮被禁用,按下,聚焦等时的图像是什么。
现在按如下方式更改按钮背景
android:background="@drawable/button_effect"
将所有内容放在一起,如下所示
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/btnFindMe"
android:background="@drawable/button_effect"
android:text="@string/about_us" />
答案 1 :(得分:0)
这种情况发生的原因是因为您正在替换处于打开和关闭状态的图像按钮的图像。您需要实现一个选择器,然后将其应用于您的按钮,以确定它是打开还是关闭。
参考: http://developer.android.com/guide/topics/ui/controls/button.html
答案 2 :(得分:0)
我确定你想根据Button的不同状态给出不同的颜色/ drawable,如果是这种情况,那么你必须为Button定义自定义选择器(XML)文件。 / p>
语法:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize=["true" | "false"]
android:dither=["true" | "false"]
android:variablePadding=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_hovered=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_activated=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
了解更多相关信息