如何知道哪个手机支持哪种布局(hdpi,mdpi和xhpi)?

我有点困惑如何确定哪些手机支持什么布局types。 我做了一些研究,但没有find一个令人满意的答案。

例如,我find了下面的指南:

xlarge screens are at least 960dp x 720dp large screens are at least 640dp x 480dp normal screens are at least 470dp x 320dp small screens are at least 426dp x 320dp 

不过,我仍然有一些担忧:

  1. 三星盛大(480 * 800)HTC野火S(320 * 480)均支持MDPI。 这些屏幕具有非常不同的分辨率,但具有相同的布局types?

  2. Galaxy Note 2(1280 * 720)支持HDPI。 如果HD(720p)只有HDPI,什么设备/分辨率支持XHDPI?

  3. 我已经在这里问了一个相关的问题: 如何设置7“两个不同的平板电脑的布局?

  4. 然而,我最重要的问题是: 如何知道哪些设备或屏幕分辨率支持每种布局types?

Solutions Collecting From Web of "如何知道哪个手机支持哪种布局(hdpi,mdpi和xhpi)?"

Android将mdpi(160像素/英寸)视为基本密度 。 所以对于mdpi设备1 dp = 1像素 。 在更高的密度下,每英寸有更多像素(240为hdpi,320为xhdpi)。

Android本身的AutoMatic缩放:

Android尝试使graphics图像在屏幕上占据相同的物理尺寸,而不pipe设备像素密度如何。 因此,如果它find的只是一个mdpi资源,并且该设备是hdpi,则它将按240/160 = 150%缩放graphics,并且会使xhdpi的graphics尺寸加倍。

使用不同版本的graphics:

如果您不想自动缩放(可能会使graphics看起来很差),则可以简单地提供自己的graphics资源版本,以便使用更高的密度。 这些graphics应该与Android扩展mdpi资源的大小相同。

注意:存储在图像文件中的像素/英寸与此无关。 这一切都基于您将graphics文件放在项目资源目录中的位置。 任何放置在res / drawable中的graphics都将被假定为适合mdpi显示的大小,放置在res / drawable-mdpi中的graphics也是如此。 在res / drawable-hdpi中find的图像文件被假定为适合hdpi显示器的大小。当您的程序在特定设备上运行时,Android将首先查找与该设备的显示密度相匹配的graphics。 如果没有find一个,而是find一个不同的密度,它将使用它并根据上述规则自动缩放图像。

由于ldpi,mdpi和hdpi指的是屏幕密度 ,这意味着多less像素可以适合一英寸

它们之间的像素比例是:

 ldpi = 1:0.75 mdpi = 1:1 hdpi = 1:1.5 xhdpi = 1:2 xxhdpi = 1:3 

所以让我们拍摄一个大约100X100图像

 for mdpi it should be 100X100 for ldpi it should be 75X75 for hdpi it should be 150X150 for xhdpi it should be 200X200 for xxhdpi it should be 300X300 

这样,对于尺寸相同但DPI不同的屏幕,所有图像在屏幕上看起来都是相同的大小。

看看这些细节:android自己pipe理所有这些,你只需要在相关文件夹中提供布局和图像

 res/layout/my_layout.xml // layout for normal screen size ("default") res/layout-small/my_layout.xml // layout for small screen size res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra large screen size res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation res/drawable-mdpi/my_icon.png // bitmap for medium density res/drawable-hdpi/my_icon.png // bitmap for high density res/drawable-xhdpi/my_icon.png // bitmap for extra high density