Android imageview tint

i5desfxk  于 2023-03-27  发布在  Android
关注(0)|答案(5)|浏览(239)

在xml中为ImageView设置着色时,我收到一个警告,显示:-

必须使用app:tint而不是android:tint

为什么要使用app:tint?

pobjuy32

pobjuy321#

因为有一些问题,android:tint不适用于版本〈21。app:tint适用于版本21。这里有一个类似的问题。Drawable tinting for api <21

3duebb1j

3duebb1j2#

AppCompatImageView中很好,你可以使用android:tint

zbsbpyhn

zbsbpyhn3#

在androidx中添加了ImageViewTintDetector lint检查。appcompat:appcompat:1.2.0-alpha 02 Add Lint rule to check android:tint usage on ImageView
实际上,我还没有找到开发人员为什么要用app:tint替换android:tint的解释。我的项目minSdkVersion是22。

vcudknz3

vcudknz34#

这看起来像是Android Studio的一个bug,因为它没有考虑到你的minSdkVersion,而且app:tint在设计师预览版中也不支持。它让我感到困惑和缓慢,因为我不记得这样的东西,当回到Android开发。
希望有一天他们会改进它,使其真正有用,并考虑您的minSdkVersion,但现在看起来最好忽略它,通过首选项编辑器检查并完全禁用app:tint attribute should be used on
编辑:对于版本〉24 .现在我又碰到了这个,在阅读到我应该使用app:tint来解决一些可能的兼容性问题之后,我对我的整个代码库都这样做了。然后我意识到,实际上在旧设备上测试时,在这个变化之后我有新的问题,所以我再次恢复到正常的android:tint ..与我在应用程序中所做的主题更改相关的问题,所以不知何故,appcompat tint并不像最后在模拟器中测试的API 24和我的两个最近的android设备一样正常工作,appcompat使实际问题在我的测试中正常工作完美,所以我希望我没有错。

oyjwcjzk

oyjwcjzk5#

这看起来像是一个bug。我有一个XML,其中有3个ImageView是完全相同的(它们是彼此的副本),而我只在其中一个中得到了这个错误。奇怪的是,点击Fix将该行从android:tint="..."转换为card_view:tint="..."
到目前为止,唯一的解决方案是添加tools:ignore="UseAppTint"来消除此警告。

相关问题