首页 > 解决方案 > 如何从片段中的属性引用中检索可绘制对象

问题描述

有人可以确认从属性引用(从片段)中检索可绘制对象的正确方法是什么?

activity.contextinval myDrawable = ContextCompat.getDrawable(activity.context, imageResId) ?: throw IllegalArgumentException("Cannot load drawable $imageResId")返回此错误:

未解决的参考:上下文

我不确定这里应该使用哪个上下文。

以下是一些相关代码:

val typedValue = TypedValue()
activity!!.theme.resolveAttribute(R.attr.imgSearch, typedValue, true)
val imageResId = typedValue.resourceId
val myDrawable = ContextCompat.getDrawable(activity.context, imageResId) ?: throw IllegalArgumentException("Cannot load drawable $imageResId")

标签: androidkotlinandroid-resourcesandroid-attributes

解决方案


尝试以下操作:

activity.resources.getDrawable(imageResId)

更新:getDrawbale() 已从 api 22 中删除,在这种情况下,您可以尝试以下操作:

ResourcesCompat.getDrawable(activity!!.resources, imageResId, null)

推荐阅读