如何mdpi,hdpi,xhdpi文件夹的作品?

上面的Android开发者指南链接摘录:

320dp:一个典型的手机屏幕(240×320 ldpi,320×480 mdpi,480×800 hdpi等)。
480dp:像Streak(480×800 mdpi)这样的微型平板电脑。
600dp:7寸平板电脑(600×1024 mdpi)。
720dp:10“平板电脑(720×1280 mdpi,800×1280 mdpi等)

所以我得到的graphics(图像)分辨率320像素每英寸从devise师在这些维度只

480×800 hdpi

720×1280 mdpi

800×1280 mdpi

我很困惑哪些大小的图像应该放在mdpi文件夹,hdpi文件夹和xhdpi文件夹中。 我想制作一个应用程序,可以在大多数Android手机和平板电脑上工作?

Solutions Collecting From Web of "如何mdpi,hdpi,xhdpi文件夹的作品?"

您可以创build不同的graphics对象以用于不同的像素密度。 Android将mdpi(160像素/英寸)视为基本密度。 所以对于mdpi设备,1 dp = 1像素。 在更高的密度下,每英寸有更多像素(240为hdpi,320为xhdpi)。 Android尝试使graphics图像在屏幕上占据相同的物理尺寸,而不pipe设备像素密度如何。 因此,如果它find的只是一个mdpi资源,并且该设备是hdpi,则它将按240/160 = 150%缩放graphics,并且会使xhdpi的graphics尺寸加倍。

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

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

当您请求提供替代资源时,Android将根据当前的设备configuration,select在运行时使用哪种替代资源。 为了演示Android如何select替代资源,假设以下可绘制目录包含相同图像的不同版本:

 drawable/ drawable-en/ drawable-fr-rCA/ drawable-en-port/ drawable-en-notouch-12key/ drawable-port-ldpi/ drawable-port-notouch-12key/ 

并假设以下是设备configuration:

 Locale = en-GB Screen orientation = port Screen pixel density = hdpi Touchscreen type = notouch Primary text input method = 12key 

通过比较设备configuration和可用的替代资源,Android从drawable-en-port中selectdrawable

系统根据以下逻辑来决定使用哪些资源:

在这里输入图像说明

参考: Android如何find最佳匹配资源

其他参考: 密度独立性 , 提供替代资源和最佳实践

我会说,你应该阅读完整的页面 支持多屏幕 ,我不认为没有什么比它更好的文档…

我对所有的屏幕大小碎片感到困惑,但基本要点是:1.您需要在布局下创build各种文件夹以处理您的图像2.图像将存在于各种文件夹下的可绘制文件夹中。 3.你应该有一个基本的/布局和/ drawable文件夹陪同非特定文件夹4.工作从xhdpi然后缩放图像!

特定屏幕文件夹的示例:/ layout-hdpi / layout-xhdpi / drawable-hdpi / drawable-xhdpi

据我所知:480 x 800是hdpi(旧手机,如S2,HTC Desire等)720 x 1280是xhdpi(新手机,如S3,Galaxy Nexus等)

基本上,根据手机,android会从必要的文件夹中获取资源,如果没有,那么它将从主'\ layout'或'\ drawable'文件夹中抓取。 例如,运行在Galaxy Nexus上的应用程序将从“\ layout-xhdpi”中获取资源(如果该文件夹存在)。

是的,你可以创build一个应用程序,但需要创build文件夹:/ res / drawable,/ res / drawable-mdpi,/ res / drawable-hdpi并为所有屏幕大小添加内容