我对Android中的多屏幕支持感到困惑。我已经在Android开发人员论坛上浏览了文章以获得多屏幕支持。我的问题是,应用程序是否有15-20张图像,需要在设备屏幕上全屏显示。现在,如果我想支持所有屏幕,我应该放入三个可绘制的文件夹中的LDPI,MDPI和HDPI中。我在这里做了什么

在LDPI中 - 240x320分辨率MDPI的图像 - 320x480 Reolution HDPI的图像 - 720x800分辨率的图像。 (我对所有三个分辨率都使用相同的密度)我认为这不是正确的方法。

我到底应该怎么做?将不同分辨率的图像放在可绘制的LDPI,可绘制的MDPI和Drawable-HDPI中,或者应该使用不同密度的图像120 dpi,160 dpi和240 dpi。如果我使用不同密度的图像应该分辨率的分辨率(应为120 DPI分辨率为240x320,160 DPI分辨率320x480和240 DPI分辨率为480x800)。或者,如果我使用不同的DPI图像,则所有密度的分辨率应相同(320x480)。

问候,阿努

有帮助吗?

解决方案

理想情况下,您应该有不同屏幕的绘制物,具有不同的密度。您可以将提到的尺寸用于图像。但是您也只能提供高DPI图像,它们将被缩小以匹配用户的设备屏幕密度。

另外,如果您希望以全屏显示图像,则可能必须具有这些图像的不同版本,以进行景观和肖像方向以及长时间且不长的屏幕。

最后您可以使用 ImageView 小部件,用于在不同设备上适当的图像缩放。

其他提示

Anujprashar,您的问题没有简单的答案。不同的密度规格(HDPI,MDPI,LDPI)只是指平均密度范围(即HDPI约为240 ppi)。但是,HDPI可以指大量不同的分辨率(例如摩托罗拉机器人是HDPI,分辨率480x854; Nexus One是HDPI,分辨率480x800)。因此,没有固定尺寸的图像可以完美地适合所有设备全屏。

我的建议是,如果可能的话,要么避免使用需要图像的布局,该布局是屏幕的确切大小,或者提供比大多数该目标密度分辨率更大的图像(例如500x900),留下额外的边距可能会裁剪(如果您熟悉印刷概念,将其视为流血)。

或更简单地说,如果您不需要以原始像素分辨率显示1:1 centerCrop, ,及其宽度和高度 fill_parent. 。这将扩展(或凝结)图像以适合容器,如果纵横比不正确,则将像素剪下。

越困难(效率较低)的方法是为每个屏幕分辨率具有不同的图像,并且在您的otCreate()中使用一种方法来检索屏幕尺寸并根据您返回的值设置图像。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top