![](/img/trans.png)
[英]How to set the size of vector drawable as drawableLeft drawable?
[英]In Android how to set vector drawable size
我讀到有關添加多密度矢量圖形的知識 ,而我只需要一個矢量xml圖像文件即可支持所有屏幕尺寸。 但是,當我嘗試它時,我仍然必須設置:
<android.support.v7.widget.AppCompatImageView
android:id="@+id/country_image"
android:layout_width="50dp"
android:layout_height="35dp"
android:paddingTop="4dp">
android:layout_width
和android:layout_height
喜歡這上面的代碼使矢量我想要的大小。
在上面的代碼中, AppCompatImageView
顯示了一個矢量國家/地區標志圖像,如果我未設置寬度和高度,則該圖像將占據孔屏幕。
這應該如何工作?
首先,簡單地說, 矢量圖形文件包含如何繪制圖像的規則 。 這些規則與圖像大小無關 。 因此,對於任何分辨率和任何大小,您都將使用相同的矢量文件,這就是為什么只需要一個文件的原因。
其次,需要hdpi
, xhdpi
和其他png版本的原因是要在具有不同像素密度的屏幕上顯示圖像。 例如,您將不需要大圖像就可以在分辨率為320x480的舊手機上顯示它。 因此系統將選擇您的mdpi或ldpi png 。 但是,例如,如果您的圖像顯示在Full HD屏幕上 ,則小png看起來會象素化,因此系統會選擇xhdpi
或xxhdpi
png版本 。 它不能使xhdpi
從ldpi
,所以你需要不同的圖像文件 。
另一方面,使用矢量圖形系統時,可以從同一文件創建所需分辨率的圖像 。 它將為320x480屏幕創建一個小圖像,為全高清屏幕創建一個大圖像-因此您只需要一個文件就可以全部統治 !
回復您的評論:
您可以將您的layout.xml文件放在res/drawable
,它將用於所有屏幕。 然后在dp中設置大小。
dp或dip密度無關像素-基於屏幕物理密度的抽象單位。 這些單位是相對於160 dpi屏幕的,因此1 dp是160 dpi屏幕上的一個像素。 dp與像素的比率將隨屏幕密度而變化,但不一定成正比。 注意:盡管“ dp”與“ sp”更一致,但編譯器接受“ dip”和“ dp”。
因此,您將擁有一個布局文件,在其中設置圖像的layout_height
和layout_width
一次,它將在所有可能的屏幕上使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.