📌  相关文章
📜  如何从资源 android 中获取颜色 - Java (1)

📅  最后修改于: 2023-12-03 15:23:48.689000             🧑  作者: Mango

如何从资源 android 中获取颜色 - Java

在开发 Android 应用程序时,我们通常需要在代码中使用已定义的颜色,这些颜色可能在 XML 资源文件中定义。 在本文中,我们将介绍如何从资源文件中获取颜色的方法。

获取颜色资源 ID

在 Android 中,颜色可在 res/values/colors.xml 中定义。 要从代码中获取颜色,需要首先获取颜色资源的 ID。

int colorId = getResources().getColor(R.color.color_name);

请注意,替换 color_name 与定义的颜色名称。

获取颜色值

要从资源中获取颜色的实际值,可以使用以下方法之一。

使用 getColor()

从 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

另一种从资源文件中获取颜色的方法涉及使用一个 TypedValueResources.getValue() 方法。

TypedValue typedValue = new TypedValue();
Resources resources = context.getResources();
resources.getValue(R.color.color_name, typedValue, true);
int color = typedValue.data;

请注意,我们使用 TypedValue.data 获取颜色的实际值。

以上是从资源 android 中获取颜色的方法介绍,开发者可以根据实际需求选择不同的获取颜色值的方式。