【问题标题】:android changing button colors turns button orange when clicking... why?android更改按钮颜色在单击时将按钮变为橙色...为什么?
【发布时间】:2015-04-21 12:52:32
【问题描述】:

我有一些按钮,我想在单击时更改背景颜色。作为一个测验应用程序,如果点击错误,它们会变成红色,如果点击正确,它们会变成绿色。当切换问题以重复选择答案的过程时,我还想将按钮重置为默认值。

我的问题是我去实现的时候:

buttonOne.setBackgroundResource(android.R.drawable.btn_default);
buttonTwo.setBackgroundResource(android.R.drawable.btn_default);
buttonThree.setBackgroundResource(android.R.drawable.btn_default);
buttonFour.setBackgroundResource(android.R.drawable.btn_default);

这应该将按钮重置为默认值(对吗?)。现在,当我单击按钮并按住它们时,背景是橙色的,我不知道为什么。有谁知道这是为什么?

我没有将任何东西设置为橙色,所以它看起来很随机。

【问题讨论】:

  • Stack Overflow 是一个协作编辑的网站。 本身,您发布的问题不是您的问题。更有经验的社区成员可以并且将编辑您的问题以改进它们。请不要与试图改善您的问题的人进行“回滚战争”。如果我不得不猜测,虽然编辑看起来很小,但您的代码中的额外空间可能导致它在小浏览器屏幕上滚动,使其更难阅读。
  • Gotchya,没有“回滚战”。尽管这似乎是您通过编辑帖子以删除您回答的问题来煽动的。把你的手浸在饼干罐里的方法。下次我有问题时,我会直接提交给您,您可以问它您认为合适的方式。
  • 经验丰富的用户编辑问题以消除不必要的混乱和煽动性的问题。放下态度。

标签: java android button colors


【解决方案1】:

您正在使用的资源可能是一组具有“活动”组的可绘制对象,如下所示:

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

    <item android:drawable="@drawable/bar_bottom_home_active" android:state_pressed="true"/>
    <item android:drawable="@drawable/bar_bottom_home"/>

</selector>

当你按住按钮时,这会解释不同的颜色。

【讨论】:

  • 好的,有道理。我刚刚在某个地方找到了该代码,它在技术上做了我想要的。它删除了绿色/红色背景。我还能如何在活动启动时将按钮返回到实际的默认外观/可绘制对象?有没有办法找出我的项目/版本的当前默认值?
  • 嗯... Tbh 我不完全确定 atm(很累,抱歉)。我要做的是设置你自己的所有按钮外观,因为你真的不知道默认按钮在不同风格的操作系统上会是什么样子,例如HTC 版本可能是蓝色的,三星版本可能是灰色的。
  • Gotchya,有道理。知道一个很好的资源来告诉我需要创建多少/什么可绘制来覆盖当前的?
  • 基本上,您自己设置的任何内容看起来都像您设置的一样,其余的将默认为设备上的内容。我认为最好的办法是在几个不同风格/版本的 Android 上尝试一下。如果这回答了您的问题,请告诉我 - 我可能没有正确理解您。
【解决方案2】:

试着这样说:

buttonOne.setBackgroundColor(YOUR_COLOR_HERE);

在颜色中,最好将其添加到您的颜色的 xml 文件中并引用它

【讨论】:

  • 对不起,我想我不清楚。我的问题不是我想改变背景颜色。那部分工作正常。我的问题是,只有在实现上面的代码(将背景资源设置为默认值)之后,按钮现在在单击操作期间变为橙色。但是一旦释放按钮,它们仍会根据需要变为绿色或红色。我知道这很琐碎,但我想了解它。
【解决方案3】:

首先,您需要创建一个 xml 文件。例如:

  • 在 res->values 中创建 colors.xml
  • 在这个 xml 中加入颜色代码
<color name="orange">#FF9900</color>
<color name="green">#009900</color>
<color name="blue">#000099</color>
<color name="red">#bf360c</color>

  • 现在,您可以使用颜色了。

    buttonOne.setBackgroundColor(getResources().getColor(R.color.green));
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2021-07-07
    • 2021-07-07
    • 2013-04-12
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多