如何在Android API <21上使用setImageTintList()

Gay*_*tti 11 android android-support-library

imgView.setImageTintList(getResources()
      .getColorStateList(R.color.my_clr_selector));
Run Code Online (Sandbox Code Playgroud)

它说'呼叫需要API级别21'.

如何在API 21以下的Android设备上运行?

我可以通过使用它使它工作,ImageView#setColorFilter()但我更喜欢使用一个ColorStateList来设置色调.

Ale*_*ood 36

你应该用它ImageViewCompat#setImageTintList()来实现这一目标.在API 21+上,它将ImageView#setImageTintList()按照您的预期使用...并且在较旧的平台版本上,它将委托给AppCompatImageView它提供一个向后移植的实现.

ColorStateList csl = AppCompatResources.getColorStateList(context, R.color.my_color_state_list);
ImageViewCompat.setImageTintList(imageView, csl);
Run Code Online (Sandbox Code Playgroud)


Pra*_*iya 5

现在可以在Support Library 25.4.0中找到它.见链接

ImageViewCompat.setImageTintList(imageView,colorStateList)