android:textColor=“?attr/colorBottomHintText“像这种颜色值怎么获取?

embedded/2024/10/16 4:33:43/

android:textColor="?attr/colorBottomHintText"

在Android中,?attr/colorBottomHintText是一种引用主题属性(Theme Attribute)的方式,用于动态获取主题中定义的颜色值。如果你想要在Java代码中使用这样的颜色值,你需要通过ContextCompat.getColor()方法结合当前上下文(Context)和相应的主题属性ID来获取颜色值。但是,直接从属性引用获取颜色ID并不直接,通常需要先通过XML资源查找对应的资源ID。
下面是如何在Java代码中获取这种主题属性颜色值的一个示例:

// 获取资源ID
int colorAttrId = context.getResources().getIdentifier("colorBottomHintText", "attr", context.getPackageName());

// 使用TypedValue和resolveAttribute来获取具体的颜色资源ID
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(colorAttrId, typedValue, true);

// 最后,通过ColorStateList或者直接的颜色ID设置颜色
if (typedValue.type >= TypedValue.TYPE_FIRST_COLOR_INT && typedValue.type <= TypedValue.TYPE_LAST_COLOR_INT) {
    // 如果attr直接指向一个颜色值
    int color = typedValue.data;
    volumeText.setTextColor(color);
} else {
    // 如果attr指向一个ColorStateList
    ColorStateList colorStateList = ContextCompat.getColorStateList(context, typedValue.resourceId);
    volumeText.setTextColor(colorStateList);
}
 

这段代码首先尝试找到名为colorBottomHintText的属性ID,然后通过当前主题解析这个属性的实际值。如果这个属性直接指向一个颜色值,就直接使用;如果它指向一个ColorStateList,则获取这个ColorStateList并应用到volumeText上。
请注意,这种方法假设你的应用主题中确实定义了名为colorBottomHintText的属性,并且该属性被正确定义为颜色或ColorStateList资源。如果找不到这个属性,getIdentifier()会返回0,此时应该有错误处理逻辑。


http://www.ppmy.cn/embedded/26016.html

相关文章

web server apache tomcat11-29-Windows Authentication

前言 整理这个官方翻译的系列&#xff0c;原因是网上大部分的 tomcat 版本比较旧&#xff0c;此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎&#xff0c;轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

Flask简介

Flask简介 安装概述使用PyCharm创建一个Flask程序 Flask程序的基本结构初始化路由和视图函数启动服务器请求-响应循环 安装 概述 Flask算是小型框架&#xff0c;小到可以称为“微框架”。Flask 非常小&#xff0c;因此你一旦能够熟练使用它&#xff0c;很可能就能读懂它所有的…

基于python的舞蹈经验分享交流网站django+vue

1.运行环境&#xff1a;python3.7/python3.8。 2.IDE环境&#xff1a;pycharmmysql5.7/8.0; 3.数据库工具&#xff1a;Navicat11 4.硬件环境&#xff1a;windows11/10 8G内存以上 5.数据库&#xff1a;MySql 5.7/8.0版本&#xff1b; 运行成功后&#xff0c;在浏览器中输入&am…

Jetson Orin NX L4T35.5.0平台相机stop导致系统死机问题调试

1. 环境 硬件:国产OrinNX套件 系统版本: L4T35.5.0 相机: SDI 相机,1080P50fps 2. 问题描述 移植驱动已经开始正常采集相机图像,但是会出现以下问题: 采集流程如下: (1)start SDI camera (2)gst-launch-1.0采集图像 gst-launch-1.0 v4l2src device=/dev/vide…

【webrtc】MessageHandler 7: 基于线程的消息处理:切换main线程向observer发出通知

以当前线程作为main线程 RemoteAudioSource 作为一个handler 仅实现一个退出清理的功能 首先on message的处理会切换到main 线程 :main_thread_其次,这里在main 线程对sink_ 做清理再次,在main 线程做出状态改变,并能通知给所有的observer 做出on changed 行为。对接mediac…

云原生周刊:K8s 中的服务和网络 | 2024.4.29

开源项目推荐 k8s-image-swapper k8s-image-swapper 是 Kubernetes 的一个变更 Webhook&#xff0c;它将镜像下载到自己的镜像仓库&#xff0c;并将镜像指向该新位置。它是 docker pull-through proxy 的一个替代方案。 KubeIP v2 KubeIP v2 是 DoiT KubeIP v1-main 开源项…

Android学习之路之数据存储(二)

目录 写在前面2. 共享参数&#xff1a;SharedPreferences2.1 SharedPreferences常用操作2.1.1 写操作2.1.2 读操作 3. 数据库&#xff1a;SQLite3.1 SQLite的基本用法3.1.1 SQLiteDatabase相关API 3.2 数据库帮助器SQLiteOpenHelper3.2.1 相关实例 写在前面 Android有五种主要…

关于react native文件路径的烦心事

前言&#xff1a;我听歌比较喜欢播放本地音乐&#xff0c;但是那些本地播放APP总会有些这样或那样让我不顺的问题&#xff0c;比如中文/日文识别为乱码&#xff0c;比如换一个文件夹它就不知道我上一次在这文件夹里播的啥音乐&#xff0c;再比如无法按文件名排序。 最近公司项…