繁体   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