这段时间忙成狗,天天加班,昨天凌晨一点多下班,都没时间写东西了,今天中午抽个空记录下Vector兼容旧版本的问题
Android 5.0发布的时候,Google提供了Vector的支持。Vector Drawable相对于普通的Drawable来说,有以下几个好处:
1.Vector图像可以自动进行适配,不需要通过分辨率来设置不同的图片,
2.Vector图像可以大幅减少图像的体积,同样一张图,用Vector来实现,可能只有PNG的几十分之一 使用简单,
3.很多设计工具,都可以直接导出SVG图像,从而转换成Vector图像 功能强大,不用写很多代码就可以实现非常复杂的动画 成熟、稳定,前端已经非常广泛的进行使用了
Vector图像刚发布的时候,是只支持Android 5.0+的,对于Android pre-L的系统来说,并不能使用,所以,可以说那时候的Vector并没有什么卵用。
不过自从AppCompat 23.2之后,Google对p-View的Android系统也进行了兼容,也就是说,Vector可以使用于Android 2.1以上的所有系统,
只需要引用com.android.support:appcompat-v7:23.2.0以上的版本就可以了。
兼容版本需要做以下三步:
1.引用com.android.support:appcompat-v7:23.2.0以上的包
2.在build中defaultConfig{}里面写vectorDrawables.useSupportLibrary = true
3.使用app:srcCompat
替换android:src
不过 app:srcCompat
支持ImageView\ImageButton
Button并不能直接使用app:srcCompat来使用Vector图像,需要通过Selector来进行使用,首先,创建两个图像,用于Selector的两个状态
select1.xml
select2.xml
selector.xml
button
然后运行,你会发现。。依然不行
需要在activity里面加上
开启这个flag后,你就可以正常使用Selector这样的DrawableContainers了。
同时,你还开启了类似android:drawableLeft这样的compound drawable的使用权限,以及RadioButton的使用权限,以及ImageView’s src属性。
Radiobutton同样可以
还有动态Vector等会再另起一篇好了