【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-22
      • 1970-01-01
      相关资源
      最近更新 更多