如何在Android API<上使用setImageTintList() 21岁 [英] How to use setImageTintList() on Android API < 21

查看:562
本文介绍了如何在Android API<上使用setImageTintList() 21岁的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

imgView.setImageTintList(getResources()
      .getColorStateList(R.color.my_clr_selector));

上面写着调用需要API级别21".

It says 'Call requires API level 21'.

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

How can I make it work on Android devices below API 21?

我可以使用ImageView#setColorFilter()使其起作用,但我更喜欢使用ColorStateList设置色调.

I can make it work by using ImageView#setColorFilter() but I prefer to use a ColorStateList to set tint.

推荐答案

您应该使用

You should use ImageViewCompat#setImageTintList() to achieve this. On API 21+, it will use ImageView#setImageTintList() as you would expect... and on older platform versions, it will delegate to AppCompatImageView which provides a backported implementation.

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

这篇关于如何在Android API<上使用setImageTintList() 21岁的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆