Android 中获取颜色资源

在 Android 开发中,资源(如字符串、颜色等)通常存储在 res 文件夹中,并通过资源 ID 进行访问。资源 ID 是一个整型值,用于唯一标识资源,若需要将资源转换为整型值,通常是指获取资源 ID 或从资源中提取整型数据。

1、getIdentifier 方法动态获取资源 ID

使用 getResources().getIdentifier() 方法可以将资源(如字符串、颜色等)的名称转换为对应的资源 ID(整型值),但是这种动态获取方式的性能较低,建议尽量避免频繁使用。
如果找到对应的资源,返回资源的 ID(整型值),未找到则返回 0。

	// 文本资源名称,对应 R.string.test_resource
	val resourceName = "test_resource"
	val resourceId = resources.getIdentifier(resourceName, "string", packageName)
	if (resourceId != 0) {
	    binding.textview.text = getString(resourceId)
	}
	
	// 颜色资源,对应 R.color.teal_200
	val colorResource = "teal_200"
	val colorId = resources.getIdentifier(colorResource, "color", packageName)
	if (colorId != 0) {
	    val color = resources.getColor(colorId, null)
	    binding.textview.setTextColor(color)
	}

2、从颜色资源中获取整型值

颜色资源在 Android 中是以整型值存储的( ARGB 值),若在 res/values/colors.xml 中定义内容:

	
	    #FF03DAC5
	

在代码中获取颜色整型值的方式如下:

	val color = resources.getColor(R.color.teal_200, null)
    textview.setTextColor(color)

你可能感兴趣的:(新起点,android,kotlin)