gpt4 book ai didi

android - 如何以编程方式获取 colorAccent 等内置资源的值(value)?

转载 作者:行者123 更新时间:2023-11-29 16:52:37 32 4
gpt4 key购买 nike

如何获得引用颜色的实际值。在布局中,我可以使用以下...

android:textColor="?android:attr/colorAccent"

.. 这适用于将 TextView 的文本颜色设置为主题定义的强调色。如何在运行时使用代码获取 colorAccent 的值?

此外,您如何找到所有可用值的列表,必须有一长串我可以掌握的可用颜色,但该列表在哪里定义?

最佳答案

如果资源是 Android 定义的:

  var id = Android.Resource.Attribute.ColorAccent;

如果资源位于 Dialog、Widget 等内,则不是 Android 系统资源(即获取 DatePickerDialog 资源)

  var id = SomeDatePickerDialog.Resources.GetIdentifier("date_picker_header_date", "id", "android");

使用获得的id:

  var typedArray = Theme.ObtainStyledAttributes(new int[] { id });
var color = typedArray.GetColor(0, int.MaxValue);
if (color != int.MaxValue)
{
Log.Debug("COLOR", color.ToString());
}

R 列表随 API/Theme 变化,对于可用的基本值:

但要获得完整的引用,您必须使用您正在查看的 API 的 Android 源代码:

所以奥利奥测试版中定义的颜色:

然后在特定颜色的 xml 文件中查看它的定义方式,并使用该定义找到它的实际值(在 valueXXX 文件中的一个中......)

关于android - 如何以编程方式获取 colorAccent 等内置资源的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45910395/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com