![](/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.