如何 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
}

这非常有效。但是,我不能将它用于 AlertDialogsetIcon(),因为它需要 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
    }