8

我的应用程序的布局文件中的按钮有以下代码

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:text="Start updating" />

默认情况下,按下按钮时,其突出显示颜色为蓝色。我如何将其更改为我想要的颜色?(我希望它是深红色的)

4

5 回答 5

20

一个按钮有一组状态可以这样配置

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/your_color"
      android:state_pressed="true" />
    <item android:drawable="@color/your_color"
      android:state_focused="true" />
</selector>

您可以在 res/drawables 文件夹中将其创建为文件,然后在按钮中使用它作为背景。假设您将该文件命名为“my_button.xml”,您可以像这样使用它:

<Button
    android:background="@drawable/my_button"  

或者像这样:

my_button.setBackgroundDrawable(getResources().getDrawable(R.drawable.my_button));

您的颜色可以在 res/values 文件夹中的 colors.xml 中定义。如果您没有此文件,您可以创建它(android 会识别它)。这是一个很好的做法,但您也可以在上面的代码中将 your_color 替换为 #DC143C。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="your_color">#DC143C</color>
</resources>

请注意,此颜色已设置为crimson

您还可以为背景添加图像,将“@color/your_color”替换为“@drawable/your_image”。

有关更多信息,您可以点击stackoverflow 中的此链接

于 2013-04-04T08:21:14.837 回答
6

在您的可绘制文件夹中创建以下 xml 文件。并将您的按钮背景设置为此可绘制对象。

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

        <!-- Image display in background in select state -->
        <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/>

        <!-- Image display in background in select state -->
        <item android:drawable="@drawable/button_pressed" android:state_focused="true"/>

        <!-- Default state -->
        <item android:drawable="@drawable/button"/>

    </selector>
于 2013-04-04T08:21:15.053 回答
4

您需要的是选择器,它是一个简单的可绘制文件,您可以在其中根据状态更改按钮的颜色,例如:

<?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/white"/>
   <item 
    android:state_pressed="true"
    android:drawable="@color/white"/>
   <item android:drawable="@color/red" />
</selector>
于 2013-04-04T08:21:37.623 回答
1

为了让您找到正确的资源,这里是 StateList Drawable 的文档。
检查这个链接

您只需在 res/drawable 子目录中创建和定义它,并将其设置为按钮背景。

于 2013-04-04T09:00:41.313 回答
1

您可以像这样定义所有控件的颜色

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Some attributes like windowNoTitle, windowActionBar, ... -->
        <item name="colorControlHighlight">@color/colorAccent</item> <!-- chose the color here -->
</style>
于 2017-04-18T13:57:29.997 回答