Zay*_*med 121 android android-imageview layout-xml
每当我使用Android Studio的Vector资源创建带有图标的ImageView时,我就会收到错误 app:srcCompat="@drawable/ic_play"
当我改变app:srcCompat时android:src,错误消失但图标看起来像素化.
两者之间的主要区别是什么
app:srcCompat="@drawable/ic_play"
Run Code Online (Sandbox Code Playgroud)
和
android:src="@drawable/ic_play"
Run Code Online (Sandbox Code Playgroud)
Int*_*iya 122
是将矢量绘图集成到app中最简单的方法.矢量绘图允许您使用XML定义的单个矢量图形替换多个png资源.虽然以前仅限于棒棒糖和更高的设备
注意
从Android支持库23.3.0开始,支持向量drawable只能通过加载app:srcCompat.
您需要将vectorDrawables.useSupportLibrary = true添加到您的build.gradle文件中
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Run Code Online (Sandbox Code Playgroud)
将drawable设置为此ImageView的内容.它将以其原始大小显示.没有自动缩放.
bit*_*ale 14
如果你android:src="@drawable/some_vector"没有vectorDrawables.useSupportLibrary = true在build.gradle文件中使用你的应用程序有矢量图像(矢量drawable),那么构建app:srcCompat="@drawable/some_vector"文件android gradle插件会vectorDrawables.useSupportLibrary = true从你的每个矢量drawable 生成不同屏幕(hdpi,xhdpi ...)的很多文件.结果 - 更大的尺寸*.png.
当使用vectorDrawables.useSupportLibrary = true与android:src="@drawable/some_vector"Android使用矢量绘制的文件,而不会生成vectorDrawables.useSupportLibrary = true文件.
您可以使用Android Studio apk分析工具进行检查.只需使用和不使用构建apk app:srcCompat="@drawable/some_vector".
我认为这是主要的区别.
使用:
app:srcCompat="@drawable/backImage"
Run Code Online (Sandbox Code Playgroud)
srcCompat属性实际上是在AppCompat库中定义的.重要提示:您需要为此添加适当的命名空间.
xmlns:app="http://schemas.android.com/apk/res-auto"
Run Code Online (Sandbox Code Playgroud)
注意
你得到的似乎只是一个可以忽略的棉绒错误.我试过并得到了同样的错误,但它工作正常.
您可以tools:ignore="MissingPrefix"暂时避免看到此错误.
我希望这有帮助.
app:srcCompat="some_resource"
Run Code Online (Sandbox Code Playgroud)
是指它是支持库中的 AppCompatActivity src 而
android:src="some_resource"
Run Code Online (Sandbox Code Playgroud)
指简单的活动。
当使用AppCompat具有ImageView(或子类,如ImageButton和FloatingActionButton),你就可以使用新的app:srcCompat属性,以参考矢量绘图资源在旧版本的平台(以及任何其他绘制可用android:src)。
android.support.v7.appcompat.R.attr.srcCompat:
srcCompat
设置一个drawable作为此ImageView的内容。在较旧版本的平台上运行时,允许使用矢量可绘制。
可以以形式引用另一资源,也可以以形式引用
"@[+][package:]type/name"主题属性"?[package:]type/name"。
xmlns:app="http://schemas.android.com/apk/res-auto"使用时不要忘记添加app:srcCompat。
| 归档时间: |
|
| 查看次数: |
67514 次 |
| 最近记录: |