无法更改华为和三星的可绘制颜色(色调)phone

Cant change drawable color(tint) on Huawei and Samsung phone

我有一个 Button,我想在其中设置 DrawableLeft。下面的这段代码在大多数 Android 设备上都能正常工作,但对于华为和三星来说,它无法正常工作,并且可绘制对象在屏幕上具有默认颜色。

这意味着 icon.setTint(ContextCompat.getColor(app, R.color.colorTextDarkGrey)) 由于某种原因无法正常工作。

此应用已在 API 级别 23 或更高级别的设备上进行测试。 (不支持旧版本)。它还在 Android 6.0 和 Android 7.1 上进行了测试并且有效。

华为phone是Android8.0,三星phone是Android9.0

private fun setPrevButton(){
        App.log("ButtonSetters: setPrevButtonVariant()")
        val icon = app.resources.getDrawable(R.drawable.arrow_black_short_left, null)
        icon.setTint(ContextCompat.getColor(app, R.color.colorTextDarkGrey))
        backBtn.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null)
    }

请按照以下代码解决此问题。

val unwrappedDrawable = AppCompatResources.getDrawable(context, R.drawable.my_drawable)
val wrappedDrawable = DrawableCompat.wrap(unwrappedDrawable!!)
DrawableCompat.setTint(wrappedDrawable, Color.RED)