Android Vector Asset Studio为一些矢量图像提供额外的填充

我正在尝试从Vector Asset Studio中的Material Vector包导入一些图标.

但他们带有填充物.

为什么会发生这种情况,如何将其删除

这是不方便的,因为这意味着如果我希望我的图标是XML格式的17dp x 17dp,那么我需要设置它超过17×17以弥补填充.

解决方法

您可以通过将ImageViews android:scaleType设置为适当的值来调整VectorDrawables源图像(.SVG,.PSD)中可能包含的任何“隐式”填充,以便它可以处理VectorDrawables源中秘密包含的填充图片.你还需要设置android:adjustViewBounds =“true”.

例如,假设您的VectorDrawable在显示时在图像的开头有一些非常烦人的填充.你不知道它为什么会在那里因为你没有在ImageView上设置任何android:paddingStart …你需要做的是将ImageViews android:scaleType设置为fitStart并将android:adjustViewBounds设置为true.

TL;博士

调整ImageViews android:scaleType以处理VectorDrawables源文件(.SVG,.PSD)中包含的任何“隐式”填充.还设置android:adjustViewBounds =“true”.

快速示例:

<ImageView android:id="@+id/vectorDrawable_imageView"
           <!--Other ImageView settings-->
           android:adjustViewBounds="true"
           android:scaleType="fitStart"
           app:srcCompat="@drawable/vector_with_implicit_padding_at_start"
/>

这将删除VectorDrawable开头那个烦人的“隐式”填充.

注意:根据渲染需要调整android:scaleType.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...