📅  最后修改于: 2023-12-03 15:23:48.689000             🧑  作者: Mango
在开发 Android 应用程序时,我们通常需要在代码中使用已定义的颜色,这些颜色可能在 XML 资源文件中定义。 在本文中,我们将介绍如何从资源文件中获取颜色的方法。
在 Android 中,颜色可在 res/values/colors.xml
中定义。 要从代码中获取颜色,需要首先获取颜色资源的 ID。
int colorId = getResources().getColor(R.color.color_name);
请注意,替换 color_name
与定义的颜色名称。
要从资源中获取颜色的实际值,可以使用以下方法之一。
从 API 23起,建议使用 资源.getColor(int id, Theme theme) 获取颜色,已取代方法setColor(int color)。 getColor() 方法接受两个参数:资源 ID 和主题(在大多数情况下,可以传递 null
作为主题)。
int color = ContextCompat.getColor(context, R.color.color_name);
请注意,为了兼容性,我们在此调用了 ContextCompat.getColor(),而非上述中提到的 Resources.getColor()。
另一种从资源文件中获取颜色的方法涉及使用一个 TypedValue
和 Resources.getValue()
方法。
TypedValue typedValue = new TypedValue();
Resources resources = context.getResources();
resources.getValue(R.color.color_name, typedValue, true);
int color = typedValue.data;
请注意,我们使用 TypedValue.data
获取颜色的实际值。
以上是从资源 android 中获取颜色的方法介绍,开发者可以根据实际需求选择不同的获取颜色值的方式。