【问题标题】:drawable.setColorFilter marked as deprecateddrawable.setColorFilter 标记为已弃用
【发布时间】:2020-02-26 11:30:17
【问题描述】:
编译器告诉我 setColorFilter 已被弃用!
tab?.icon?.setColorFilter(
ContextCompat.getColor(requireActivity(), R.color.colorLogoGrey),
PorterDuff.Mode.SRC_IN
)
【问题讨论】:
标签:
android
kotlin
android-viewpager
drawable
android-tablayout
【解决方案1】:
正如您从 documentation 中看到的那样,setColorFilter(int color, PorterDuff.Mode mode) 实际上已从 API 级别 29 中弃用。
可能在您的 gradle 文件中:
compileSdkVersion 29
顺便说一句,您可以将setColorFilter 与BlendModeColorFilter 的实例一起使用:
tab?.icon?.colorFilter(BlendModeColorFilter(R.color.colorAccent, BlendMode.SRC_IN))
【解决方案2】:
只需使用 BlendModeColorFilterCompat,以避免在旧的 Android API 上崩溃。
BlendModeColorFilterCompat.createBlendModeColorFilterCompat(ContextCompat.getColor(yourContext, yourColor), BlendModeCompat.SRC_ATOP)