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

tzxcd3kk  于 2023-02-02  发布在  Android
关注(0)|答案(3)|浏览(336)
imgView.setImageTintList(getResources()
      .getColorStateList(R.color.my_clr_selector));

它显示“调用需要API级别21”。
如何让它在API 21以下的Android设备上运行?
我可以通过使用ImageView#setColorFilter()使它工作,但我更喜欢使用ColorStateList来设置色调。

6yt4nkrj

6yt4nkrj1#

你应该使用ImageViewCompat#setImageTintList()来实现这一点。在API 21+上,它将使用ImageView#setImageTintList(),正如你所期望的那样...在旧的平台版本上,它将委托给AppCompatImageView,后者提供了一个后移植的实现。

ColorStateList csl = AppCompatResources.getColorStateList(context, R.color.my_color_state_list);
ImageViewCompat.setImageTintList(imageView, csl);
4dc9hkyq

4dc9hkyq2#

现在支持库25.4.0中提供了此功能。请参见Link
图像视图兼容性设置图像色调列表(图像视图,颜色状态列表)

wsewodh2

wsewodh23#

int colorInt = ContextCompat.getColor(context, R.color.primaryColor);
ImageViewCompat.setImageTintList(ivImage, ColorStateList.valueOf(colorInt));

相关问题