Android:app:srcCompat =“”和android:src =“”有什么区别?
每当我创build一个ImageView的图标添加使用Android Studio的vector资产,我在线app:srcCompat="@drawable/ic_play"
错误app:srcCompat="@drawable/ic_play"
而当我更改app:srcCompat=""
与android:src=""
错误消失,但图标看起来像素化。
主要区别是什么?
app:srcCompat="@drawable/ic_play"
和
android:src="@drawable/ic_play"
应用:srcCompat
是将vector绘图集成到您的应用程序中最安全的方法。 vector绘图允许您使用XML中定义的单个vectorgraphics来replace多个PNG资源。 以前只限于棒棒糖和更高级的设备
注意
从Android支持库23.3.0开始 , 支持vector绘图只能通过app:srcCompat
加载。
你需要添加vectorDrawables.useSupportLibrary = true到你的build.gradle
文件
// Gradle Plugin 2.0+ android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
机器人:SRC
设置一个drawable作为这个ImageView的内容。它将以原始大小显示。 没有自动缩放。
vector和animationvector只在最近版本的框架中被支持。 srcCompat可以与兼容库一起使用,但是只能在支持库中的特定视图中使用。 注意,应用程序:是用来代替android :. 这意味着它不是框架的一部分,而是你的应用程序定义的一个参数。
使用:
应用程式:srcCompat = “@绘制/ backImage”
因为它的srcCompat属性实际上是在AppCompat库中定义的。 重要的是你将需要为此添加适当的命名空间。
xmlns:app="http://schemas.android.com/apk/res-auto"
注意
你得到它似乎只是一个可以忽略的皮棉错误。 我曾尝试过,并有相同的错误,但它正常工作。
你可以使用tools:ignore="MissingPrefix"
来避免临时看到这个错误。
我希望这有帮助。
当将AppCompat
与ImageView
(或ImageButton
和FloatingActionButton
等子类) 一起使用时 , 您将能够使用新的app:srcCompat
属性在旧版本的平台上引用vector绘图(以及其他任何可用于android:src
drawable ) 。
android.support.v7.appcompat.R.attr.srcCompat :
srcCompat
设置一个drawable作为这个ImageView的内容。 允许在旧版本的平台上运行时使用vector绘制。
可以以
"@[+][package:]type/name"
格式或以"?[package:]type/name"
forms的另一个资源的引用。
当使用app:srcCompat
时,不要忘记插入xmlns:app="http://schemas.android.com/apk/res-auto"
。
app:srcCompat="some_resource"
是指支持库中的AppCompatActivity src
android:src="some_resource"
指的是简单的活动。
Android 5.0(API级别21)及更高版本提供了vector绘图支持,以便支持旧版本应用程序中的vector绘图:已添加srcCompat
当使用AppCompat与ImageView(或ImageButton和FloatingActionButton等子类)时,您将可以使用新的应用程序:srcCompat属性来引用vector绘图(以及任何其他可绘制的可用于android:src)在运行时重新绘制drawable,你可以像以前一样使用setImageResource()方法 – 在那里没有改变。 使用AppCompat和应用程序:srcCompat是将vector绘图集成到您的应用程序的最简单的方法。 你会发现在应用程序之外直接引用vector绘图:srcCompat在Lollipop之前将会失败。