我試圖從矢量素材工作室的素材矢量包中導入一些圖標。Android Vector Asset Studio爲某些矢量圖像提供了額外的填充
但他們來填充。
爲什麼會出現這種情況,我該如何去除呢?
這很不方便,因爲這意味着如果我想讓我的圖標在XML中爲17dp x 17dp,那麼我需要將它設置爲大於17x17以彌補填充。
我試圖從矢量素材工作室的素材矢量包中導入一些圖標。Android Vector Asset Studio爲某些矢量圖像提供了額外的填充
但他們來填充。
爲什麼會出現這種情況,我該如何去除呢?
這很不方便,因爲這意味着如果我想讓我的圖標在XML中爲17dp x 17dp,那麼我需要將它設置爲大於17x17以彌補填充。
可以調整可通過設置ImageViews
android:scaleType
到合適的值,使之能夠處理正在祕密包含在VectorDrawables
源填充包含一個VectorDrawables
源圖像(.SVG
,.PSD
)內的任何「隱含的」填充圖片。您還需要設置android:adjustViewBounds="true"
。
例如,假設您的圖片顯示時VectorDrawable
有一些令人討厭的padding
。你不知道爲什麼它在那裏,因爲你沒有在ImageView
上設置任何android:paddingStart
......你需要做的是設置ImageViews
android:scaleType
到fitStart
和android:adjustViewBounds
到true
。
TL;博士
調整你的ImageViews
android:scaleType
處理包含在你的VectorDrawable
的源文件(.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
。
此填充位於某些圖標上,以便所有圖標均可正確對齊。例如,如果在該對話框中選擇ic_3d_rotation_24dp
,則會看到圖標一直延伸到邊界的邊緣。
PS如果你的目標是擁有all your sizes be a multiple of 8dp,事情會很好地排隊,看起來不錯。
謝謝!我不知道。我認爲這可能是一個錯誤或功能可以被禁用。 – Guy