0

我正在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" />
4

3 回答 3

2

在您的可绘制文件夹中创建一个名为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" />
于 2013-04-03T04:27:03.127 回答
0

发生这种情况的原因是因为您要替换处于打开和关闭状态的图像按钮的图像。您需要实现一个选择器,然后将其应用于您的按钮以确定它是打开还是关闭。

参考:http: //developer.android.com/guide/topics/ui/controls/button.html

于 2013-04-03T04:26:02.483 回答
0

我确定您想根据按钮的不同状态提供不同的颜色/可绘制对象,如果是这种情况,那么您必须为按钮定义自定义选择器(XML)文件

句法:

<?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>

你可以阅读更多关于它的信息:Drawable Resources

于 2013-04-03T04:30:27.163 回答