如何 return 一个 Drawable asset as Integer?
How to return a Drawable asset as Integer?
在我的应用程序中,我正在使用此功能 return Drawable
更改颜色:
fun setDrawableColor(icon: Drawable, color: Int): Drawable {
val drawable = DrawableCompat.wrap(icon)
DrawableCompat.setTint(drawable, getColor(color))
return drawable
}
这非常有效。但是,我不能将它用于 AlertDialog
的 setIcon()
,因为它需要 Drawable
作为 Integer,就像这样 setIcon(R.dawable.my_icon)
.
我需要一个与上面类似的函数,它做的事情完全相同,但是 returns Drawable
as Integer 代替。我怎样才能做到这一点?
您可以尝试这种方式,但您需要在此处将绘图名称作为参数传递
fun getDrawableColorAsInt(icon: Drawable, color: Int, drawableName: String): Int {
val drawable = DrawableCompat.wrap(icon)
DrawableCompat.setTint(drawable, context!!.getColor(color))
val resourceID = resources.getIdentifier(drawableName, "drawable", context!!.packageName)
return resourceID
}
在我的应用程序中,我正在使用此功能 return Drawable
更改颜色:
fun setDrawableColor(icon: Drawable, color: Int): Drawable {
val drawable = DrawableCompat.wrap(icon)
DrawableCompat.setTint(drawable, getColor(color))
return drawable
}
这非常有效。但是,我不能将它用于 AlertDialog
的 setIcon()
,因为它需要 Drawable
作为 Integer,就像这样 setIcon(R.dawable.my_icon)
.
我需要一个与上面类似的函数,它做的事情完全相同,但是 returns Drawable
as Integer 代替。我怎样才能做到这一点?
您可以尝试这种方式,但您需要在此处将绘图名称作为参数传递
fun getDrawableColorAsInt(icon: Drawable, color: Int, drawableName: String): Int {
val drawable = DrawableCompat.wrap(icon)
DrawableCompat.setTint(drawable, context!!.getColor(color))
val resourceID = resources.getIdentifier(drawableName, "drawable", context!!.packageName)
return resourceID
}