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 中定义内容:

	<resources>
	    <color name="teal_200">#FF03DAC5</color>
	</resources>

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

	val color = resources.getColor(R.color.teal_200, null)
    textview.setTextColor(color)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值