android svg使用
1.矢量图使用点和线来描述图形,所有文件会比较小,同时也能提供高清晰的画面。
2.矢量图缩放自由且不会是真,完全适配于任何分辨率的屏幕。
一般如果app放矢量图标,至少放置2张 36*36 72*72 ,但是svg1张就可以。并且还很小。
一个app大概在50张以上图片,如果都使用大概可以减少8M的大小。
3.矢量图色彩分辨率非常高清,同时支持滤镜。
4.跨平台,因为矢量图是纯文本格式来描述的,所以不受平台的限制。
如果一端先写,另一端直接可以使用。
svg使用:
5.0以上完美使用,并且目前开发最低版本都是设置为5.0了。所以,完美使用,当然可以兼容低版本。
1.在drawable文件夹上右键->new->Vector Asset
2.选择自带的图标或者从本地选取
3.直接使用
<ImageView android:layout_gravity="center_vertical" android:src="@drawable/mapicon_svg" android:layout_width="30dp" android:layout_height="30dp" />
5.0以下版本使用:
一、配置。
implementation 'com.android.support:animated-vector-drawable:27.0.2'
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
二:在 Activity 的 oncreate 中加入如下代码,建议在BaseActivity中添加
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); //...... }
三:使用,注意区分
配置好了可以开始使用,一般有两个场景,一个是 TextView、EditText 的 drawableLeft、Right、Top、Bottom,一个是作为 ImageView 背景 background。
- 用 srcCompat 代替 src.
- 设置背景 可以将你的 svg 资源用 selector 标签包裹起来调用
- 在 EditText 中使用 android:drawableLeft 和 android:drawableStart 时,有可能还会报错,这时你可以参照第二条使用。