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

2024-01-12

当按下按钮时,如何使用 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 文件中,我管理状态(按下、选择、默认)


从 API 级别 21 开始,您可以使用:

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

你只需要在你的xml中添加这个

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:更改按钮文本和背景颜色 的相关文章

  • 如何包含塞尔维亚语的 2 种变体?带有拉丁字母和西里尔字母

    我有一个 Android 应用程序 我想翻译成塞尔维亚语 并且我想要该语言的两种变体 拉丁字母和西里尔字母 我尝试过这个变体 value sr rRS Latn value sr Latn value sr rRS Cyrl value s
  • Android 在 ListView 中获取精确的滚动位置

    我想获得 ListView 滚动的确切像素位置 不 我指的不是第一个可见位置 有办法实现这一点吗 好的 我找到了一个解决方法 使用以下代码 View c listview getChildAt 0 int scrolly c getTop
  • Android 上的透明视频

    有什么办法让Android播放带有透明区域的视频吗 当我尝试在 VideoView 中播放包含透明区域的 WebM 视频时 视图的背景保持黑色 我希望看到透明区域上显示的父视图的背景 而不是黑色 到目前为止 我发现的唯一可行的解 决方案是从
  • 使用三元运算符“不执行任何操作”[重复]

    这个问题在这里已经有答案了 我想像这样使用三元运算符 仅检查true声明的一部分 foo bar Do nothing 是否可以排除该语句的 else 部分的逻辑 我尝试使用return 但编译器给出了错误 基本上我想要实现的是使用三元运算
  • FFmpegFrameRecorder 视频广播音频在 3G 网络中比视频帧更快

    我在用着FFmpegFrameRecorder用于视频广播 问题是音频比视频帧快 我正在使用以下代码 但无法生成完整的视频 音频视频时间戳存在问题 Java代码 import static com googlecode javacv cpp
  • 改造如何打印响应 JSON

    我正在使用 Retrofit 并且想要访问从服务器返回的 JSON 响应 有人可以告诉我吗 谢谢 如果您只想查看出于调试目的的响应 只需在改造中打开调试并查看日志即可 它是这样的 restAdapter setDebuggingEnable
  • 在 Firebase 群组消息应用中实现已读回执功能

    我想在我的 Firebase 群组消息应用中实现 Seen 功能 您能否建议采取最好 最有效的方法 工作代码将不胜感激 例如 应用程序会显示 已被 6 人看过 or 15 人看过 在群组消息中 这是我的项目 https github com
  • 更改 Android XML 中的形状颜色

    我有 android 绘图 我将应用到几个 TextView 的背景
  • android中如何实现列表之间的拖放?

    我试图做到这一点 以便用户可以从一个列表视图中拖动文本视图 然后将其放入另一个列表视图中 但我发现这非常困难 到目前为止我发现的最大问题是 onTouchEvents 似乎只能在 ACTION DOWN 事件起源的视图中听到 我将单击一个列
  • 默认启动器图标大小应该是多少

    我参考了文档http developer android com guide practices ui guidelines icon design html icon sets http developer android com gui
  • 更改首选项(设置)后,显示设置的文本不会更新

    我将尝试解释一个简单的应用程序场景 我的应用程序直接进入 主视图 在这个主视图中我插入了一个TextView它显示通过以下方式创建的当前设置PreferenceManager 为了简单起见 假设我的设置中有一个复选框 当我第一次启动我的应用
  • 如何在循环中正确释放jstring?

    我的应用程序需要使用jni 逻辑如下 void myJniFunc JNIEnv env jclass clazz jobjectArray items int count 10 struct MyObj myObjArray struct
  • 可扩展列表指示器

    我有一个可扩展的列表 所以两个问题 我见过一些类似的问题 但从未找到答案 我该怎么办 隐藏箭头 组指示器 当没有孩子的时候 我尝试在适配器中执行此操作 public View getGroupView int groupPosition b
  • 迁移到 AndroidX 后 Google 登录无法正常工作

    我已将 Google Sign 集成到我的 Android 应用程序中 当我使用 spp Compact v28 库时它工作得很好 但在将我的应用程序迁移到 androidx 后失败 但出现以下异常 java lang Incompatib
  • Android快速查找网络上所有本地设备

    我正在制作一个 Android 应用程序 需要能够查看本地网络设备 名称或 IP 目前我可以扫描网络并找到设备的本地IP 然而 由于时间太长 用户在搜索网络时会看到黑屏加载几分钟 这是我当前正在使用的代码 private ArrayList
  • 为什么recycleview数据无法与服务器端数据库数据同步

    我正在使用rest api向我在android中的应用程序提供数据 对于数据库 我正在使用phpmyadmin并在本地主机中执行此操作 一切顺利 但是当我在数据库中添加新数据时 我的recycleview无法与数据库中的最新数据同步 因此当
  • AndroidJUnit4 测试未找到

    我像这样注释了我的课程 RunWith AndroidJUnit4 class public class WorkdayProviderTest 此外 还注释了我的测试方法 如下所示 Test public void insert data
  • 在Fragment中第一次调用时SharedPreferences为空

    我有一个示例 Android 应用程序 根据位置 邮政编码 和设置 SharedPreference 中设置的温度单位 该应用程序显示 7 天的天气 当应用程序第一次获取温度并检查 SharedPreference 中设置的温度单位时 它似
  • 将自定义文件与我的 Android 应用程序关联

    我想将特定扩展名的文件 例如任何扩展名为 xyz 的文件 与我的应用程序关联 这意味着 当用户在文件资源管理器 或其他地方 如 gmail 驱动器等 中点击 SaveFile1 xyz 时 我的应用程序应该启动 并且文件的 Uri 将在 I
  • onDataChanged() 在 Android Wear 上未被调用

    我试图使用数据项将一些字符串发送到我的穿戴设备 但我的穿戴设备似乎从未收到任何信号 因为 onDataChanged 从未被调用 我什至设置了一个时间戳 以确保每次发送数据时始终不同 有没有特定的方法我必须将应用程序安装到两台设备上才能使其

随机推荐