Android中矢量图使用
16lz
2021-01-25
Android5.0之后系统支持了矢量图和矢量动画
为了兼容低版本的适配,Google提供了support-vector-drawable 和 support-animated-vector-drawable 支持库,新版的AS使用矢量图的时候,已经支持会自动检测警告了。
Gradle 2.0+ 启用矢量图
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
Gradle 2.0之前
android { defaultConfig { // Stops the Gradle plugin’s automatic rasterization of vectors generatedDensities = [] } // Flag to tell aapt to keep the attribute ids around aaptOptions { additionalParameters "--no-version-vectors" }}
VectorDrawableCompat支持Api 7+
AnimatedVectorDrawableCompat支持Api 11+
当使用AppCompat和ImageView(或者其子类),xml中可以直接使用app:srcCompat来引用矢量资源,代码中和原来一样,AppCompat中设置代理类来处理。
如果是不使用AppCompat控件也可以,但是需要嵌套一层,做成StateListDrawable,InsetDrawable,LayerDrawable,LevelListDrawable,RotateDrawable之类的,因为它们在初始化的时候系统会先去查找Drawable,这个过程会在代码中出发代理类来搞定矢量图的加载。但是还是需要手动强制全局启用,AppCompat控件默认则不受限制。
static {//老版本的api,已删除//AppCompatDelegate.setCompatVectorFromSourcesEnabled(true)//新的apiAppCompatDelegate.setCompatVectorFromResourcesEnabled(true);}
当然如果怕麻烦其实还有一种方式就是让美工来做,把需要的图片放到一个集合做成ttf字体文件,使用图片的过程其实就是自定义字体的过程,这种最好是做小图标之类的。
更多相关文章
- android 2.3 & 4.2 Audio静音过程分析
- Android(安卓)4.2 BT系统之蓝牙关闭过程全跟踪
- MVC浅析(实际上应该是MVP,有时间再更新该博客)
- Android集成Zxing实现二维码扫描识别,过程、常见错误及修改
- Android(安卓)SSL BKS证书的生成过程
- Android(安卓)的init过程详解
- Android通话和数据传输过程分析
- Android(安卓)Studio报错:Error:Could not find com.android.tool
- Android(安卓)四大组件 - 进程的 fork 创建过程