如何将 TextView 文本颜色设置为特定主题颜色

2023-12-14

我尝试学习 Android 主题,但在设置主题时遇到了麻烦TextViewTextColor 为另一种颜色,然后是全局的:

<item name="android:textColor">@color/white</item>

我创建了这个:

 <item name="chatBubbleTextColor">@color/material_bohemia_500</item>

并认为我可以在 TextView xml 中使用它,例如

android:textColor="?attr/chatBubbleTextColor"

但我无法让它工作,也许它不能那样工作?
我知道我可以这样做:

<style name="BohemiachatBubbleTextColor" parent="android:Theme">
    <item name="android:textColor">@color/material_bohemia_500</item>
</style>

但我真的必须这样做吗?我只想创建颜色属性而不创建新样式

这是主题,有两个主题,chatBubbleTextColor两者都不同

波西米亚应用程序主题和红色应用程序主题

<!-- Base Theme -->
<style name="BaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Attributes for all APIs -->
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="dialogTheme">@style/AppTheme.Dialog</item>
    <item name="alertDialogTheme">@style/AppTheme.Dialog.Alert</item>
    <item name="colorControlHighlight">@color/selector_black_pressed</item>
    <!-- Theme for the Preferences -->
    <item name="preferenceTheme">@style/AppPreferenceTheme</item>
    <!-- Theme for the pacv_placesAutoCompleteTextV -->
    <item name="pacv_placesAutoCompleteTextViewStyle">@style/Widget.AppCompat.EditText</item>



<!-- Default App Theme -->
<style name="AppTheme" parent="BaseTheme">
    <!-- API specific attributes 14+ -->
    <item name="selectableRectDrawable">@drawable/state_list_selectable_rect_black</item>
    <item name="selectableRectDrawableInverse">@drawable/state_list_selectable_rect_white</item>
    <item name="selectableRectDrawableColored">@drawable/state_list_selectable_rect_black</item>
    <item name="selectableRoundedRectDrawable">@drawable/state_list_selectable_rounded_rect_black</item>
    <item name="selectableRoundedRectDrawableInverse">@drawable/state_list_selectable_rounded_rect_white</item>
    <item name="selectableRoundedRectDrawableColored">@drawable/state_list_selectable_rounded_rect_black</item>
</style>



<!-- Bohemia App Theme -->
<style name="BaseTheme.Bohemia" parent="AppTheme">
    <!-- Attributes for all APIs -->
    <item name="colorPrimary">@color/material_bohemia_400</item>
    <item name="colorPrimaryDark">@color/material_bohemia_500</item>
    <item name="colorAccent">@color/material_bohemia_a100</item>
    <item name="dialogTheme">@style/AppTheme.Dialog.Bohemia</item>
    <item name="alertDialogTheme">@style/AppTheme.Dialog.Alert.Bohemia</item>
    <item name="android:windowBackground">@color/material_bohemia_600</item>
    <!-- Sets the color of the control when it is not activated like an unchecked checkbox. -->
    <item name="colorControlNormal">@color/material_bohemia_a200</item>
    <!-- Chat bubble -->
    <item name="chatBubbleTextColor">@color/material_bohemia_500</item>

</style>

<style name="AppTheme.Bohemia" parent="BaseTheme.Bohemia">
    <!-- API specific attributes 14+ -->
    <item name="selectableRectDrawableColored">@drawable/state_list_selectable_rect_bohemia</item>
    <item name="selectableRoundedRectDrawableColored">@drawable/state_list_selectable_rounded_rect_bohemia</item>
    <!-- Add your custom overall styles here -->
</style>

<!-- Red App Theme -->
<style name="BaseTheme.Red" parent="AppTheme">
    <!-- Attributes for all APIs -->
    <item name="colorPrimary">@color/material_red_500</item>
    <item name="colorPrimaryDark">@color/material_red_700</item>
    <item name="colorAccent">@color/material_red_a700</item>
    <item name="dialogTheme">@style/AppTheme.Dialog.Red</item>
    <item name="alertDialogTheme">@style/AppTheme.Dialog.Alert.Red</item>
    <item name="android:windowBackground">@color/material_red_300</item>
    <!-- Chat bubble -->
    <item name="chatBubbleTextColor">@color/material_red_500</item>
</style>

<style name="AppTheme.Red" parent="BaseTheme.Red">
    <!-- API specific attributes 14+ -->
    <item name="selectableRectDrawableColored">@drawable/state_list_selectable_rect_red</item>
    <item name="selectableRoundedRectDrawableColored">@drawable/state_list_selectable_rounded_rect_red</item>

    <!-- Add your custom overall styles here -->
</style>

我找到了我自己问题的答案here.

基本上是这样的:

在文件中attr.xml我这样定义:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="ChatBubbleBackGroundColor" format="reference|color" />
    <attr name="ChatBubbleTextColor" format="reference|color" />
</resources>

接下来我添加到我的两个BaseThemes:

<style name="BaseTheme.Red" parent="AppTheme">
   <item name="ChatBubbleBackGroundColor">@color/material_red_a200</item>
   <item name="ChatBubbleTextColor">@color/material_red_a700</item>
</style>

<style name="BaseTheme.Orange" parent="AppTheme">
   <item name="ChatBubbleBackGroundColor">@color/material_orange_a200</item>
   <item name="ChatBubbleTextColor">@color/material_orange_a700</item>
</style>

最后在我的布局中:

<TextView
    android:id="@+id/quoteTitle"
    android:textColor="?ChatBubbleTextColor"
    android:BackGround="?ChatBubbleBackGroundColor"
    ...
</TextView>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 TextView 文本颜色设置为特定主题颜色 的相关文章

  • Android - 材料设计 - NavigationView - 如何放置垂直滚动?

    我正在使用 NavigationViewcompile com android support design 22 2 1 嗯 一切都很好 除非它没有垂直滚动 如何通过xml设置呢 xml
  • `RenamingDelegatingContext` 已弃用。现在我们如何测试 SQLite 数据库?

    As per https stackoverflow com a 13556184 3286489 https stackoverflow com a 13556184 3286489 我们可以使用RenamingDelegatingCon
  • 如何从色彩校正增益获得色温

    我想找出相机拍摄的照片的色温 final CameraCaptureSession CaptureCallback previewSSession new CameraCaptureSession CaptureCallback Overr
  • 未向 HAL 提供足够的数据,预期位置

    我在 Android Studio 中收到此错误 我只想在按下按钮时打印文本 我收到以下错误 每次按下按钮时都会出现该错误 如果我取消注释掉意图 它也可以正常工作 但是我拥有的代码越多 错误更改就越多 我实际上不确定这是真正的错误 我这么说
  • RecyclerView 滚动不适用于 NestedScrollView

    我有一个布局 其中有一个 NestedScrollView 其中包含一个图像 多个按钮和一个 RecycleView 当我说recyclerView smoothScrollToPosition or recyclerView scroll
  • JellyBean中Services中引入Isolatedprocess标签的优点[Android]

    任何人都可以阐明在 JellyBean Android 的服务中引入isolatedprocess标签的真正 主要优点是什么 这在框架级别或内核级别是否有利 正如我们所看到的 在服务中设置isolatedProcess标签值 true 会为
  • Android 相机 - 将图像保存到 SD 卡中的新文件夹中

    我有一个非常简单的应用程序 目前可以拍照然后保存图像 目前的问题是 由于某种原因 我无法找到图像在手机上的保存位置 我想要做的最终结果是 当拍摄照片时 图像会保存到 SD 卡上创建的新文件夹中 但如果该文件夹尚不存在 则必须创建该文件夹 自
  • java.io.IOException:无法打开同步连接!进入 Nexus [重复]

    这个问题在这里已经有答案了 我尝试在 Eclipse 上运行我的应用程序 但发现了这些错误 这是第一次遇到 所以请给我关于这些错误的任何想法 我目前使用的是 Nexus 手机 2011 08 04 15 59 09 App Android
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • 评级栏更改星星颜色而不使用自定义图像

    有什么办法可以改变星星的颜色吗 我不想使用自定义图像来实现它 您可以将这些行添加到创建方法中 RatingBar ratingBar RatingBar findViewById R id ratingBar LayerDrawable s
  • gradle 复制为 doLast 不起作用

    我正在尝试做一件非常简单的事情 由于 gradle 在清理时会删除构建目录中的所有文件 因此我想在创建发布版本时将 apk 移至其他位置 所以我在链中添加了一个复制任务 并将其设置为最后一个 我尝试过的任何方法都不起作用 所以我简化了它并添
  • android形状xml旋转可绘制以编程方式改变颜色

    这是三角形的 xml
  • 蓝牙权限在 jetpack compose 中无法正常工作

    我在用com google accompanist accompanist permissions 0 25 1在我的项目中 我正在尝试在运行时请求蓝牙权限 我想知道用户如何知道权限被永久禁用 清单 xml
  • 无法从 ViewPager 中的 Fragment 编辑 ActionBar 标题

    我有一个Activity它通过一个托管多个片段ViewPager 在活动的onCreate方法我使用以下代码来更改ActionBar title Toolbar toolbar findViewById R id toolbar setSu
  • Android - 框架布局高度与协调器布局不匹配

    我的 FrameLayout 抽屉布局中的容器 有问题 FrameLayout的高度超过了屏幕高度 在底部的android默认菜单按钮下方
  • 如何获取 Android 应用程序的 Google Places API 密钥

    在过去的 48 小时里 我绞尽脑汁试图找到这个问题的答案 问这个问题的人 如何为 Google Places api 制作 API KEY https stackoverflow com questions 23128152 how can
  • Android facebook api,获取不同尺寸的头像

    我正在使用相对较新的 Facebook 图形 api 我正在获取使用该应用程序的朋友列表及其个人资料照片 我不知道如何修改我发送的参数 以便返回的图片很大 当前返回的默认值很小 我正在使用 newMyFriendsRequest 我发送的参
  • 获取Android联系人排序首选项

    在 Android 的 联系人 gt 设置 中 我们有 列表排序依据 和 查看联系人姓名 选项 有什么方法可以在另一个应用程序中获取这些首选项吗 这意味着我的应用程序有我自己版本的联系人列表 我需要这些才能对其进行相应的排序 int sor
  • 收到 GCM 通知时启动应用程序

    我有 GCM 通知实施 我知道客户端应用程序无论处于前台 后台还是终止状态都会收到通知 我想知道的是 当应用程序处于终止状态时 如何在收到通知时启动我的应用程序 在消息接收器中 我执行以下操作 final Intent notificati
  • 带有客户端证书的android webview

    我尝试了几天使用嵌入在应用程序中的客户端证书的Web视图 但在我看来 android sdk没有提供任何方法来做到这一点 是否有回调来拦截服务器发送的质询 有没有办法将 webview 与客户端证书一起使用并发出 https 请求 因为我也

随机推荐

  • EF 4 Code First - 组合视图和表

    我研究这个问题好几天了 似乎找不到一个让我感觉良好的选择 但是 这里有一个非常相似的问题的链接 将计算字段添加到模型 最后 我也有同样的问题 但希望有更好的解决方案 考虑以下数据库表 CREATE TABLE Contact Contact
  • 函数将十六进制字符串转换为 BitArray C#

    我创建了以下函数 它将按要求执行 将十六进制字符串转换为 BitArray 我不确定该函数的效率 但我现在的主要问题是转换为Int64函数是特定字节序 当将其移植到替代芯片组时 我们将得到不同的结果 或例外 那么有人能想到另一种方法来进行这
  • 如何使用 Wi-Fi 获取距离

    我想使用 wi fi 查找距离并在 iPhone 的地图上绘制标记 那么我能得到什么想法或代码吗 第一次阅读您的问题时 我假设您指的是到接入点的距离 在写了一堆关于这个的内容之后 我意识到你可能有别的意思 如果这就是您的意思 请继续阅读 鉴
  • Facebook如何重写浏览器地址栏中页面的源URL?

    Go to http www facebook com facebook v wall 然后单击信息选项卡 内容将被加载 地址栏现在变成http www facebook com facebook v info但网页没有重新加载 起初我以为
  • 在 Nuxt 中使用最新的 SASS 和 @use

    我想在我的项目中使用 sass 我安装了 node sass 和 sass loader 我可以使用导入 变量和其他 sass 的未来 但我不能使用 use 来使用 mixin 或 function dependencies babel c
  • 如何在python中使用networkx绘制有向图?

    我有一些来自脚本的节点 我想将它们映射到图表上 在下面 我想使用箭头从 A 到 D 并且可能也将边缘着色 红色或其他颜色 这基本上就像所有其他节点都存在时从 A 到 D 的路径一样 您可以将每个节点想象为城市 从 A 到 D 需要方向 带有
  • Laravel - 如何更新整个集合

    我正在尝试用 laravel 制作一个通知系统 我的想法是获取数据并立即更新 is delivered 标志 这是代码 Model public function scopeGetForView query query gt orderBy
  • 关于数组中缺少元素的问题

    我在麻省理工大学的 算法介绍第二版 一书中遇到以下问题 问题如下 数组 A 1 n 包含 0 到 n 之间除 1 之外的所有整数 这很容易 使用辅助数组 B 0 来在 O n 时间内确定丢失的整数 记录 A 中出现了哪些数字 但是 在这个问
  • 如何使用 django 删除图像?

    我想知道如何在表单中添加删除按钮来删除图像 该项目是一个简单的 图片查看器 索引显示存储的所有图像 但我想添加一个 x 图标来删除该特定图像 这是我的代码 views py from django shortcuts import rend
  • jTDS 错误地报告结果集元数据中的数据类型信息(对于 DATE 列,报告 NVARCHAR)

    目前 针对 Microsoft SQL Server 2008 的 jTDS JDBC 驱动程序 1 2 5 似乎错误地将 DATE 列的数据类型报告为 NVARCHAR 对于早期版本的 jTDS 和 SQL Server 2005 200
  • pytorch 中的 reshape 和 view 有什么区别?

    在 numpy 中 我们使用ndarray reshape 用于重塑数组 我注意到在 pytorch 中 人们使用torch view 出于同样的目的 但同时 还有一个torch reshape 现存的 所以我想知道它们之间有什么区别以及何
  • 在 JavaScript 中返回 !1

    我刚刚在 JavaScript 中遇到了一个函数 它有return 1 这实际上意味着什么 你为什么要return 1 or return 0 这是我遇到的函数 function convertStringToBoolean a typeo
  • let 语句中的 case 语句需要什么缩进?

    在 haskell 中工作 发现奇怪的行为 将其精简为简单的框架 这有效 a Bool a case True of True gt True False gt False 但当我尝试时 b IO Bool b do let b case
  • 我备份了一个 git 项目,并得到“致命:不是 Git 存储库”

    我将 Linux 上的 git 文件夹备份到 FAT32 外部驱动器上 稍后将其复制回来 它说 fatal Not a git repository or any of the parent directories git 可能出了什么问题
  • 错误:变量可能尚未初始化

    收到错误 Pay java 81 错误 变量hourlyWage可能不是 已初始化JOptionPane showMessageDialog null hourlyWage 对于以下代码 双hourlyWage已声明 这些陈述位于主要论点内
  • 应用程序处于后台模式时的文本到语音功能?

    我正在研究一个TextToSpeech应用程序 我在一篇文章中写了一段UITextField 然后我按Speak按钮 声音根据写入的文本播放UITextField 但是 当应用程序处于后台模式时 音频将停止播放 如何在后台模式下继续播放声音
  • Angularjs如何上传多部分表单数据和文件?

    我是 angular js 的初学者 但我很好地掌握了基础知识 我想要做的是将文件和一些表单数据作为多部分表单数据上传 我读到这不是 Angular 的功能 但是第 3 方库可以完成此任务 我已经通过 git 克隆了 Angular fil
  • 在循环中为 Tkinter Entry 小部件创建 StringVar 变量

    我有一个小脚本 可以生成随机数量的条目小部件 每个都需要一个 StringVar 以便我可以将文本分配给小部件 由于我无法提前知道会有多少个 因此如何将它们创建为循环的一部分 from Tkinter import import rando
  • Pygame 应用程序中的 SVG 渲染。在 Pygame 2.0 之前,Pygame 不支持 SVG。那你是怎么加载的呢?

    In a Pygame应用程序中 我想渲染 SVG 中描述的无分辨率 GUI 小部件 我怎样才能实现这个目标 我喜欢OCEMP图形用户界面工具包 但它的渲染似乎依赖于位图 这是一个完整的例子 结合了其他人的提示 它应该从当前目录渲染一个名为
  • 如何将 TextView 文本颜色设置为特定主题颜色

    我尝试学习 Android 主题 但在设置主题时遇到了麻烦TextViewTextColor 为另一种颜色 然后是全局的