使用Android studio拖拽布局拖拽ImageView的时候自动生成了app:srcCompat这个属性来设置ImageView的图片源,之前使用的时候都是没有问题的。今天用include加载一个都是ImageView的layout的时候,预览都是没有问题的,在真机上include的布局就不显示了。一直以为是include的问题,各种找include的用法还是解决不了,直到在layout上加了一个TextView可以正常显示,才发觉不是include的问题,我ImageView使用的不是android:src来加载图片而是用app:srcCompat。
查了一下两个属性的区别
是将矢量绘图集成到app中最简单的方法。矢量绘图允许您使用XML定义的单个矢量图形替换多个png资源。虽然以前仅限于棒棒糖和更高的设备
注意
从Android支持库23.3.0开始,支持向量drawable只能通过加载app:srcCompat
。
您需要将vectorDrawables.useSupportLibrary = true添加到您的build.gradle
文件中
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
将drawable设置为此ImageView的内容。它将以其原始大小显示。没有自动缩放。
还有就是当Activity如果是继承AppcompatActivity的时候使用ImageView的app:srcCompat属性来设置图片源是没问题的
当Activity吐过不是继承AppcompatActivity的时候使用ImageView的app:srcCompat的属性来设置图片源是无法显示的,需要使用android.support.v7.widget.AppCompatImageView来代替ImageView或者让Activity继承AppcompatActivity。
若果无法修改Activity的继承或者不想用android.support.v7.widget.AppCompatImageView来代替那就老实的用android:src吧