簡體   English   中英

在Android中如何設置矢量繪制大小

[英]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_widthandroid:layout_height喜歡這上面的代碼使矢量我想要的大小。

在上面的代碼中, AppCompatImageView顯示了一個矢量國家/地區標志圖像,如果我未設置寬度和高度,則該圖像將占據孔屏幕。

這應該如何工作?

首先,簡單地說, 矢量圖形文件包含如何繪制圖像的規則 這些規則與圖像大小無關 因此,對於任何分辨率和任何大小,您都將使用相同的矢量文件,這就是為什么只需要一個文件的原因。

其次,需要hdpixhdpi和其他png版本的原因是要在具有不同像素密度的屏幕上顯示圖像。 例如,您將不需要大圖像就可以在分辨率320x480的舊手機上顯示它。 因此系統將選擇您的mdpi或ldpi png 但是,例如,如果您的圖像顯示在Full HD屏幕上 ,則小png看起來會象素化,因此系統會選擇xhdpixxhdpi png版本 它不能使xhdpildpi ,所以你需要不同的圖像文件

另一方面,使用矢量圖形系統時,可以從同一文件創建所需分辨率的圖像 它將為320x480屏幕創建一個小圖像,為全高清屏幕創建一個大圖像-因此您需要一個文件就可以全部統治

回復您的評論:

您可以將您的layout.xml文件放在res/drawable ,它將用於所有屏幕。 然后在dp中設置大小。

dp或dip密度無關像素-基於屏幕物理密度的抽象單位。 這些單位是相對於160 dpi屏幕的,因此1 dp是160 dpi屏幕上的一個像素。 dp與像素的比率將隨屏幕密度而變化,但不一定成正比。 注意:盡管“ dp”與“ sp”更一致,但編譯器接受“ dip”和“ dp”。

因此,您將擁有一個布局文件,在其中設置圖像的layout_heightlayout_width一次,它將在所有可能的屏幕上使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM