Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改背景颜色后,如何从无边框按钮获得反馈?selectableItemBackground_Java_Android_Button_Borderless - Fatal编程技术网

Java 更改背景颜色后,如何从无边框按钮获得反馈?selectableItemBackground

Java 更改背景颜色后,如何从无边框按钮获得反馈?selectableItemBackground,java,android,button,borderless,Java,Android,Button,Borderless,昨天,我试图解决我的按钮在禁用和启用后无法提供任何可见反馈的问题。 但答案不符合我的愿望——这个按钮应该是什么样子。最后,我想到我应该用抽屉来做我自己的纽扣,而不是用库存的纽扣。 但我不想改变我的按钮。 所以我希望在你的帮助下我能找到另一条路 重要的是要知道,我改变了股票按钮的方式,它是描述她: 我的xml按钮: <Button android:id="@+id/buttonEat" android:layout_width

昨天,我试图解决我的按钮在禁用和启用后无法提供任何可见反馈的问题。

但答案不符合我的愿望——这个按钮应该是什么样子。最后,我想到我应该用抽屉来做我自己的纽扣,而不是用库存的纽扣。 但我不想改变我的按钮。 所以我希望在你的帮助下我能找到另一条路

重要的是要知道,我改变了股票按钮的方式,它是描述她:

我的xml按钮:

        <Button
            android:id="@+id/buttonEat"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?android:attr/selectableItemBackground"
            android:paddingBottom="@dimen/padding_size"
            android:paddingTop="@dimen/padding_size"
            android:text="@string/button_eat"
            android:textColor="@color/white"
            android:textColorHint="@color/white"
            android:textSize="@dimen/text_size" />
但一定有办法让这些按钮从selectableItemBackground恢复功能性

问题似乎是背景颜色的变化。
有人知道吗?请让我知道

您可以创建一个自定义绘图,并为各种状态(启用、按下等)定义颜色,而不是更改代码中按钮的背景颜色。 要创建自定义绘图,只需在/res/drawable文件夹中创建一个XML文件,以下是一些示例内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" >
        <shape>
            <!-- define style for disabled state here -->
        </shape>
    </item>
    <item android:state_pressed="true" >
        <shape>
            <!-- define style for pressed state here -->
        </shape>
    </item>
    <item>
        <shape>
            <!-- define style for normal state here -->
        </shape>
    </item>
</selector>

形状标记的内容示例:

<solid
    android:color="#ffffff"/>
<stroke
    android:width="1dp"
    android:color="#000000" />
<corners
    android:radius="4dp" />
<padding
    android:left="10dp"
    android:top="10dp"
    android:right="10dp"
    android:bottom="10dp" />


现在可以在布局xml文件中将此可绘制设置为按钮的背景。然后,您只需更改按钮的文本颜色。

您可以创建自定义绘图,并定义各种状态(启用、按下等)的颜色,而不是更改代码中按钮的背景颜色。 要创建自定义绘图,只需在/res/drawable文件夹中创建一个XML文件,以下是一些示例内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" >
        <shape>
            <!-- define style for disabled state here -->
        </shape>
    </item>
    <item android:state_pressed="true" >
        <shape>
            <!-- define style for pressed state here -->
        </shape>
    </item>
    <item>
        <shape>
            <!-- define style for normal state here -->
        </shape>
    </item>
</selector>

形状标记的内容示例:

<solid
    android:color="#ffffff"/>
<stroke
    android:width="1dp"
    android:color="#000000" />
<corners
    android:radius="4dp" />
<padding
    android:left="10dp"
    android:top="10dp"
    android:right="10dp"
    android:bottom="10dp" />


现在可以在布局xml文件中将此可绘制设置为按钮的背景。然后,您只需更改按钮的文本颜色。

我坚决反对制作自己的自定义按钮,因为我从来没有这样做过。但是对于你的代码示例,我只是复制了它们来尝试一下,如果它能这么容易地工作的话。谢谢,现在我学到了一些新东西,可以继续了:)我坚决反对自己定制按钮,因为我从来没有做过。但是对于你的代码示例,我只是复制了它们来尝试一下,如果它能这么容易地工作的话。谢谢,现在我学到了一些新东西,可以继续前进了:)