我正在尝试从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.