繁体   English   中英

mdpi,hdpi,xhdpi文件夹的工作原理如何?

[英]How mdpi, hdpi, xhdpi folder works?

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

320dp:典型的手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。
480dp:像Streak(480x800 mdpi)这样的tweener平板电脑。
600dp:7“平板电脑(600x1024 mdpi)。
720dp:10英寸平板电脑(720x1280 mdpi,800x1280 mdpi等)

所以我在这些尺寸上获得了设计师每英寸320像素的图形(图像)

480x800 hdpi

720x1280 mdpi

800x1280 mdpi

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

您可以创建不同的图形对象,以便在不同的像素密度下使用。 Android将mdpi(160像素/英寸)视为基本密度。 因此对于mdpi设备,1 dp = 1像素。 在更高的密度下,每英寸有更多像素(hdpi为240,xhdpi为320)。 无论设备像素密度如何,Android都会尝试使图形图像在屏幕上占据相同的物理尺寸。 因此,如果它找到的只是mdpi资源,并且设备是hdpi,它将按240/160 = 150%缩放图形,并且它将使xhdpi的图形大小加倍。

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

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

当您请求为其提供备选方案的资源时,Android会根据当前设备配置选择在运行时使用哪个备用资源。 为了演示Android如何选择替代资源,假设以下可绘制目录各自包含相同图像的不同版本:

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

并假设以下是设备配置:

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

通过将设备配置与可用的替代资源进行比较,Android从drawable-en-port中选择drawable

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

在此输入图像描述

参考: Android如何找到最匹配的资源

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

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

我对所有屏幕尺寸碎片感到困惑,但基本要点是:1。您需要在布局下创建各种文件夹以处理图像2.图像将存在于各种文件夹下的drawables文件夹中。 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”获取资源。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM