在华为和三星手机上无法更改可绘制颜色(淡色)

时间:2019-06-17 11:19:09

标签: android android-layout kotlin android-drawable android-button

我在要设置DrawableLeft的地方有Button。下面的代码适用于大多数Android设备,但不适用于华为和三星,并且可绘制的屏幕上具有默认颜色。

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

此应用已在API级别为23或更高的设备上经过测试。 (不支持旧版本)。它还在Android 6.0和Android 7.1上进行了测试,并且可以正常工作。

华为手机为Android 8.0,三星手机为Android 9.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)
    }

1 个答案:

答案 0 :(得分:0)

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

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