Java Android RelativeLayout单击更改颜色
如何像普通按钮一样更改用作可点击点击按钮的相对布局的颜色? 就像我想要一个视觉反馈,布局被按下了 我使用绑定到后台属性的选择器进行了尝试,如下所示:Java Android RelativeLayout单击更改颜色,java,android,Java,Android,如何像普通按钮一样更改用作可点击点击按钮的相对布局的颜色? 就像我想要一个视觉反馈,布局被按下了 我使用绑定到后台属性的选择器进行了尝试,如下所示: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@android:color/black"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/black" />
<item android:color="@android:color/white"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/black"/>
<item android:state_pressed="true" android:state_enabled="false" android:drawable="@color/black" />
<item android:drawable="@color/white"/>
</selector>
并将其用于布局回溯中
android:background=“@color/layout\u选择器”
但这给了我一个膨胀的例外
有什么想法吗?版面不会显示在屏幕上。他们可能只会收集意见。您应该添加一些视图,然后向该视图添加onClick侦听器 可能重复:在RealtiveLayout的android:background属性上使用。
同时使布局可点击(通过android:clickable=“true”)。将此布局_selector.xml放入可绘制文件夹ie(res>drawable>layout _selector.xml)
然后设置
android:background=“@drawable/layout\u selector”
而不是android:background=“@color/layout\u selector”
尝试以下步骤:
在res-->values文件夹中创建color.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000000</color>
<color name="white">#ffffff</color>
</resources>
#000000
#ffffff
由于选择器中的
标记需要定义可绘制属性的可绘制属性或子标记,因此您的布局选择器.xml文件(保存在res-->可绘制文件中)应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@android:color/black"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/black" />
<item android:color="@android:color/white"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/black"/>
<item android:state_pressed="true" android:state_enabled="false" android:drawable="@color/black" />
<item android:drawable="@color/white"/>
</selector>
另外,如前所述,相对布局应该是可点击的(android:clickable=“true”
)
其背景设置为android:background=“@drawable/layout\u selector”
希望有帮助我按照你的建议试过了,但没用。相应地编辑了帖子。你把选择器文件放在哪里了?如果您将它们放在/drawable/use@drawable/layout\u selector中,则会将文件复制到drawable中,并按照您的建议使用它,但仍然存在相同的错误<代码>无法启动活动组件信息{com.app/com.views.MainView}:android.view.InflateException:二进制XML文件行#50:错误膨胀类由于未知原因,
android:background
无法使用颜色选择器-它必须是可绘制的选择器(这意味着您应该将android:color
标签替换为android:drawable
,并在drawable中放入一些1x px黑白PNG。这不是最好的解决方案,但是……好吧,背景分辨率必须是可绘制的,而不是颜色列表(选中)很好。这就像一个符咒。事实上,问题是它必须是一个可绘制的资源,而不是在android:color列表中。@AVirvara:我也做了完全相同的事情。当der不关注它时,它显示白色背景,但当我单击它时,它不会将其切换为黑色。我不知道为什么?我已经设置了所有属性。任何建议都是值得欣赏的ed.正如GuyFawkes所说,在选择器中使用android:color
会给你一个phat异常,当你将选择器分配给布局时,使用android:background
thanx很多。在移除android:state\u enabled=“false”后,其工作正常。在我的情况下,它只有在移除android:state\u enabled=“false”后才能工作
,并且它还可以在RelativeLayout中使用和不使用android:clickable=“true”