当前位置: 首页 > 知识库问答 >
问题:

Android:更改按钮文本和背景颜色

羊舌新荣
2023-03-14

当我的按钮被按下时,我如何用xml更改文本和背景颜色?

要更改文本颜色,可以执行以下操作:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="mycolor"/>
    <item android:color="mycolor2/>
</selector>

要更改背景,我可以做(在具有可绘制引用的选择器/项中使用它):

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FF0079FF" />
</shape>

但我怎么能两样都做呢?假设我想要:

  • 默认:黑色文本/白色背景
  • 按下:白文/蓝底

我完全忘记了背景和文本颜色是分开管理的,所以我是这样做的:

<Button
    android:textColor="@color/filtersbuttoncolors"
    android:background="@drawable/mybackgroundcolors" />

在MyBackgroundColors.xml中,我管理背景,在FiltersButtonColors.xml中,我管理文本颜色。在这两个xml文件中,我管理状态(按下、选定、默认)

共有2个答案

云瑞
2023-03-14

由于API级别为21,您可以使用:

android:backgroundTint="@android:color/white"

您只需在xml中添加此内容即可

孙博艺
2023-03-14

下面是一个drawable的示例,它默认为白色,按下时为黑色:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape>
            <solid
                android:color="#1E669B"/>
            <stroke
                android:width="2dp"
                android:color="#1B5E91"/>
            <corners
                android:radius="6dp"/>
            <padding
                android:bottom="10dp"
                android:left="10dp"
                android:right="10dp"
                android:top="10dp"/>
        </shape>

    </item>
    <item>
        <shape>
            <gradient
                android:angle="270"
                android:endColor="#1E669B"
                android:startColor="#1E669B"/>
            <stroke
                android:width="4dp"
                android:color="#1B5E91"/>
            <corners
                android:radius="7dp"/>
            <padding
                android:bottom="10dp"
                android:left="10dp"
                android:right="10dp"
                android:top="10dp"/>
        </shape>
    </item>
</selector>
 类似资料:
  • 我对改变晶圆厂的背景色有一个问题,似乎晶圆厂后面有另一个背景 这是我的代码 现在唯一有效的解决方案是改变我的应用程序上的颜色口音,但它会影响其他UI元素

  • 问题内容: 我有一个Java按钮,可打开JColorChooser对话框。我希望按钮的颜色根据对话框中选择的颜色进行更改。我曾尝试调用按钮的setBackgroundColor()方法,但对我而言没有任何效果(该按钮位于Winsows 7中的JToolBar上)。同样,此问题表明更改按钮的背景不是平台无关的。 也许此问题的答案不是首先使用按钮。因此,我的问题是:是否存在一种方法来显示Java中反映

  • 本文向大家介绍使用CSS更改按钮的背景色,包括了使用CSS更改按钮的背景色的使用技巧和注意事项,需要的朋友参考一下 要更改按钮的背景色,请使用background-color属性。 您可以尝试运行以下代码来更改按钮的背景色 示例

  • 我当前的应用程序运行在iOS 5和iOS 6上。 导航栏的颜色为橙色,状态栏的背景颜色为黑色,文本颜色为白色。但是,当我在iOS 7上运行相同的应用程序时,我观察到状态栏看起来是透明的,与导航栏的背景颜色相同,并且状态栏文本颜色为黑色。 因此,我无法区分状态栏和导航栏。 如何使状态栏与iOS 5和iOS 6中的状态栏相同,即黑色背景色和白色文本色?如何以编程方式执行此操作?

  • 我有一个带有半径和笔划的CardView,但当我以编程方式更改CardView背景时,半径和笔划将丢失,我希望新颜色保留在笔划内。 这是我的cardview xml 这里是我换颜色的地方: