gpt4 book ai didi

java - 将背景更改为颜色后,Button 的 onClick 上的高亮效果消失了

转载 作者:搜寻专家 更新时间:2023-11-01 08:01:36 26 4
gpt4 key购买 nike

当按钮保持默认灰色不变时,它会在执行其 onClick 操作之前单击时突出显示。我已将按钮的背景更改为红色,现在单击时的高亮效果消失了。如何在新背景下再次发生这种情况?我想我想要的只是突出显示的红色或点击时稍微亮一点的红色。

我环顾四周,发现很多人说在 res/drawable 文件夹中创建一个 onclickbuttonhighlight.xml 文件。我在下面这样做了。

<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/blue"
android:state_focused="true"
android:state_pressed="true"/>
<item
android:drawable="@color/blue"
android:state_focused="false"
android:state_pressed="true"/>
<item
android:drawable="@color/blue"
android:state_focused="true"
android:state_pressed="false"/>
<item
android:drawable="@color/blue"
android:state_focused="false"
android:state_pressed="false"/>
</selector>

我不太确定在 android:drawable="@color/blue" 行中应该放什么。我只是用蓝色来测试。然后在 XML 文件中,我在按钮下添加了 android:background="@drawable/onclickbuttonhighlight"。不过,我在点击时没有看到任何高亮效果。

我这样做不对吗?或者有更好的方法吗? XML 或以编程方式工作;我没有偏好。

最佳答案

自定义按钮样式

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="IMAGE_FOR_DISABLED_STATE" android:state_enabled="false"/>
<item android:drawable="IMAGE_FOR_PRESSED_STATE" android:state_enabled="true" android:state_pressed="true"/>
<item android:drawable="IMAGE_FOR_FOCUSED_STATE" android:state_enabled="true" android:state_focused="true"/>
<item android:drawable="IMAGE_FOR_ENABLED_STATE" android:state_enabled="true"/>

</selector>

看到按下状态和聚焦状态有不同的可绘制对象(图像)。

如果是默认的 android 系统,我们有 drawable

default holo drawable对于启用按钮

default focused drawable对于专注状态

default disabled drawable对于残疾状态

因此,当我们按下按钮或将其聚焦时,我们会看到蓝色边框。

现在,当您更改默认背景时,您是在将可绘制对象更改为颜色值,而不是通过可绘制对象指定其他按钮状态。因此,颜色值本身被系统用于所有状态,您看不到任何悬停效果。

因此,如果您希望实现自定义按钮,而不是直接将颜色设置为背景,请指定一个可绘制文件作为背景,该文件指定所有按钮状态的颜色/可绘制图像,例如按下、聚焦、启用、禁用.

关于java - 将背景更改为颜色后,Button 的 onClick 上的高亮效果消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com