最终创建了一个可处理多屏幕布局和图标的结构。
Android根据两个参数将设备显示归纳为类别:
- 屏幕尺寸,显示器的物理尺寸(对角线测量)
- 屏幕密度,显示器的物理像素密度(以每英寸像素数或ppi为单位)
要快速确定屏幕尺寸和密度,请安装适用于Android的“ 我的尺寸是多少 ”应用。
屏幕尺寸
Android定义了四种通用的屏幕尺寸:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
- 大多数电话被分类为小型或普通(对角线约3到4英寸)。但是现在,有很多大屏幕手机,例如Galaxy S4,HTC One,Xperia Z
- 像Samsung Galaxy Tab这样的小型平板电脑被归类为大型(大于4英寸)
- 特大号适用于大型设备,例如大型平板电脑
Android定义了四种通用的屏幕密度:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
通常:
- 屏幕尺寸对您的应用布局影响最大
- 屏幕密度对您的图像和图形资源影响最大
这里列出了设备屏幕的百分比差异
- Ldpi-75%
- Mdpi-100%(根据Android开发者网站为基准)
- Hdpi-150%
- XHdpi- 200%
但是,正如我们现在所知,大多数设备都配备480X800,因此我认为这是基于设备的设备,因此我们的新计算将如下所示
- Ldpi-50%
- Mdpi-66.67%
- Hdpi-100%
- XHdpi- 133.33%
这意味着将仅为480X800创建第一个图标和设计,然后为其余图标(即Ldpi,Mdpi,Xhdpi)创建图标和设计。
有些图像对于所有布局都是通用的,并且必须在颜色和形状上统一(没有复杂的形状,没有曲线),因此我们正在创建此类图像9patch
,并将其放置在“ drawable(no-suffix)”文件夹中。要创建9Patch图像,可以使用DrawNinePatch或BetterNinePatch
现在,只需根据Android标准重命名图像,并使用完善您的应用程序,hdpi
然后drawable-hdpi
打开文件夹并打开Adode Photoshop(推荐)即可创建多个尺寸的动作(只需根据百分比比例更改尺寸),然后针对所有尺寸创建一个动作即可批处理自动化并提供源(drawable-hdpi)和目标(drawable-ldpi,drawable-mdpi,drawable-xdpi)。
我之所以坚持要使用Photoshop,是因为它会自动通过Actions调整图像的大小以及一个加号,这是因为您无需重命名该文件(它会分配与原始名称相同的名称)。
完成所有图像的创建后,刷新项目并进行测试。
有时可能会在小屏幕(ldpi)中剪切支持屏幕(xhdpi,hdpi,mdpi)的布局,因此为了处理此布局,只需为其创建单独的Layout文件夹(layout-small)并添加ScrollView
(大部分)即可。而已。
平板
电脑平板电脑分为两种尺寸。
- 7英寸(1024X(600-48(导航栏)))= 1024X552(可绘制大图)
- 10“(1280X(800-48(导航栏)))= 1280X752(可绘制x大)
在这种情况下,我们需要为两个屏幕都创建图像,并相应地放置它们
因此,总而言之,我们将在应用程序中拥有此文件夹以支持多屏幕。
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
将与更多的预选赛组合 Screen size and Screen density
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
与更多预选赛 Screen density and Version
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
和更多的预选赛 Screen size and Version
drawable-large-v11
drawable-xlarge-v11
和更多的预选赛 Smallest width concept(SW)
drawable-sw???dp
在Android V3.0 Honeycomb中,他们进一步介绍SW(smallest width)
了将设备分类为屏幕宽度的新概念,因此,如果我们创建一个名为的文件夹,drawable-sw360dp
则720dp(宽度或高度)的设备将使用此文件夹中的资源。
例如,要查找的Samsung Galaxy S3
DP以后缀来绘制-SW?DP
与参考DP计算,如果你想支持你的布局或绘制到S3则计算说
px =设备的宽度= 720
dpi =设备的密度= 320
给出的公式
px = dp * (dpi / 160)
交换公式,因为我们有px的值
dp = px / (dpi / 160)
现在投入价值,
dp= 720 / (320/160);
dp=360.
所以drawable-sw360dp
会做的工作
从GsmArena获得设备配置
Sameway,您还可以根据设备的Android API版本(即drawable-hdpi-v11`)创建文件夹,因此具有API11且为Hdpi的设备将使用此资源。
其他提示:
使用相对布局,dp,sp和mm
dp单位 -在160 ppi屏幕上归一化为1个物理像素的设备无关像素,即中等密度。在运行时缩放。用于屏幕元素尺寸
sp单位 -基于dp单位的缩放像素,指定为浮点值,但还针对用户的字体大小首选项设置进行缩放。在运行时缩放。用于字体大小
您应该始终将RelativeLayout用于布局;AbsoluteLayout已弃用,不应使用。
使用适当的图像格式-PNG与JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
但是,PNG和JPEG不是等效的。它们具有不同的质量权衡,PNG并不总是最好的:
JPEG可以比PNG减少多达50%的文件大小,如果您的应用程序图像密集,这是非常重要的
对于相同的文件大小,较高质量的“有损” JPEG看起来可能比高度压缩的“无损” PNG更好。
为图像和图形添加标签以进行调试
使用supports-screens元素
使用真实的设备值配置模拟器
按照惯例,台式机系统以72ppi(Mac)或96ppi(Windows,Linux)显示。与移动设备相比,台式机显示器始终是低密度的。
始终将您的Android模拟器配置为模拟真实的设备值,并始终将其设置为可缩放以模拟设备密度。
在Eclipse中,很容易创建多个仿真器(从Eclipse菜单栏中,选择Window> AVD Manager> New),并为其配置实际设备的值:
为要仿真的真实设备命名仿真器指定分辨率,不要使用内置通用大小设置设备密度以匹配真实设备(在“硬件”窗格中,将“抽象的LCD属性”设置为真实密度,始终为整数)
启动设备时,请始终选择“按比例缩放显示到实际大小”,然后键入实际屏幕尺寸(以英寸为单位)。
如果未设置设备密度,则仿真器默认为低密度,并且始终加载ldpi专用资源。分辨率(像素尺寸)将是正确的,但是与密度有关的图像资源将无法按预期显示。
当然,您所做的任何事情都不会在较低密度的桌面显示器上重现较高密度的图像质量。
以下是截至2012年10月1日的7天之内收集的数据。要查看有关Android平台版本的最新统计信息,请转到此处
根据屏幕尺寸
基于屏幕密度