You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中如何用Java代码读取Style Item的十六进制值

读取Android Style中colorForeground的十六进制值

要读取style.xml里Theme.MyTheme中android:colorForeground对应的十六进制颜色值,需要分两步:先获取该属性对应的实际颜色整数值,再将其转换为十六进制字符串。

步骤1:通过TypedArray获取颜色整数值

在Context(比如Activity)中,利用obtainStyledAttributes方法从指定主题中提取属性值:

// 获取TypedArray,传入目标主题和要获取的属性数组
TypedArray typedArray = obtainStyledAttributes(R.style.Theme_MyTheme, new int[]{android.R.attr.colorForeground});
// 提取颜色值,第二个参数为默认颜色(这里用透明色)
int colorValue = typedArray.getColor(0, android.graphics.Color.TRANSPARENT);
// 必须回收TypedArray,避免内存泄漏
typedArray.recycle();

步骤2:将颜色整数值转为十六进制字符串

把获取到的int类型颜色值格式化为十六进制字符串:

// 不带Alpha通道的6位格式
String hexColor = String.format("#%06X", (0xFFFFFF & colorValue));
// 带Alpha通道的8位格式(包含透明度信息)
String hexColorWithAlpha = String.format("#%08X", colorValue);

说明

  • R.style.Theme_MyTheme对应你定义的主题名称,注意用下划线替代原XML中的点号
  • android.R.attr.colorForeground是系统定义的属性ID,对应XML里的android:colorForeground
  • @color/purple_200会被系统解析为具体的颜色整数值,通过上述方式能直接拿到实际颜色值,再转成十六进制即可

内容的提问来源于stack exchange,提问作者lucky1928

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:57:09