一、前言:
我们在用蓝湖开发页面的时候,可以选择svg图片下载,这样在APP中自适应宽高,不会变形。注意:有透明度的图片不可以使用svg。
注意:我们下载的svg图片不可以直接使用,要转换一下才能用。
注意:矢量图的优点一大把,但也不是万能的。矢量图特别适合icon图标的应用场景,但是不能用于比如加载相册时,设置的placeholder或者error这类需要频繁切换回收的应用场景,否则会造成非常明显的卡顿,因为矢量图是不被硬件加速支持的。
1、用AS 内部转换
-
1、assets上右键new , 选择Vector Asset。
2、选择svg图片的路径,会生成xml文件放到drawable文件夹中
- 3、在ImageView中直接src引用即可。
2、一张矢量图适配所有颜色
1、简单使用tint属性: 下面是一个简单的使用例子,在这个布局里面有两个ImageView 控件,它们的src属性 引用的是同一个 shape图形,第一个ImageView 没有使用Tint 属性是默认颜色,第二个ImageView 使用了tint 属性 显示效果如图所示,
2、tint这个属性,是ImageView有的,它可以给ImageView的src设置,除了tint 之外,还有backgroundTint,foregroundTint,drawableTint,它们分别对应对背景、前景、drawable进行着色处理。
3、动态设置tint属性
//获取image
ImageView image = (ImageView) findViewById(R.id.image1);
//获取颜色
ColorStateList colors =ColorStateList.valueOf(ContextCompat.getColor(this,R.color.colorAccent) );
//设置图片颜色
image.setImageTintList(colors);