95

正如我们所知,Android 配备了具有不同功能、分辨率和屏幕尺寸的各种设备,因此在开发支持多个(小和大)屏幕的应用程序时,存在尺寸和布局的障碍。

这会导致屏幕尺寸、分辨率和 DPI的不同组合,并在为 Android 设备进行设计和开发时带来相当大的挑战。虽然其他一些制造商(非 Android)具有不同的分辨率和 DPI,但它们共享相同的屏幕尺寸并且分辨率遵循相同的纵横比。因此,可以创建适合非 Android 设备的图像。

我的问题是,是否应该遵循适当的流程或架构来满足要求?

在此处输入图像描述

请记住,我们确实有不同尺寸和分辨率的平板电脑。

我知道Android Developer包含此信息,但我的观点来自实现。

据我所知,对于设计 Android 图形,即使是程序员也必须了解设计理念。

4

2 回答 2

148

最后创建了一个处理多个屏幕的布局和图标的结构。

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
  • 像三星 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(无后缀)”文件夹中。要创建 9Patch 图像,您可以使用DrawNinePatchBetterNinePatch

现在只需根据 Android 的标准重命名您的图像并完成您的应用程序,hdpi然后只需创建drawable-hdpi文件夹并打开Adode Photoshop(推荐)创建多个大小的操作(只需根据百分比更改大小)一旦为所有大小创建操作然后执行批量自动化并给出源(drawable-hdpi)和目标(drawable-ldpi,drawable-mdpi,drawable-xdpi)。

我坚持你使用 Photoshop 的原因是它会自动调整你的图像大小,还有一个优点是你不需要重命名文件(它会分配与原始文件相同的名称)。

完成所有图像的创建后,刷新您的项目并对其进行测试。

有时,支持屏幕(xhdpi、hdpi、mdpi)的布局可能会在小屏幕(ldpi)中被剪切,因此为了处理这个问题,只需为其创建单独的布局文件夹(layout-small)并添加ScrollView(大部分)。就是这样。

平板电脑 平板 电脑分为两种尺寸。

  1. 7"(1024X(600-48(导航栏))) = 1024X552 (drawable-large)
  2. 10"(1280X(800-48(导航栏))) = 1280X752 (drawable-xlarge)

在这个我们需要为两个屏幕创建图像并相应地放置它们

所以总而言之,我们将在我们的应用程序中有这个文件夹来支持多屏。

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后缀到drawable-sw?dp
参考DP Calculation,如果你想支持你的布局或 drawable 到 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并不总是最好的:

    与 PNG 相比, JPEG最多可减少 50% 的文件大小,如果您的应用程序是图像密集型应用程序,这一点非常重要

    对于相同的文件大小,更高质量的“有损”JPEG 可能比高度压缩的“无损”PNG 看起来更好

  • 为您的图像和图形添加标签以进行调试

  • 使用 support-screens 元素

  • 使用真实设备值配置您的模拟器

    通常,桌面系统以 72ppi (Mac) 或 96ppi (Windows、Linux) 显示。与移动设备相比,桌面显示器始终是低密度的。

    始终将您的 Android 模拟器配置为模仿真实的设备值,并始终将它们设置为缩放以模拟设备密度。

    在 Eclipse 中,很容易创建多个模拟器(从 Eclipse 菜单栏中,选择Window > AVD Manager > New),并为真实设备配置值:

    为其模拟的真实设备命名模拟器指定分辨率,不要使用内置通用尺寸设置设备密度以匹配真实设备(在硬件窗格中将抽象 LCD 属性设置为真实密度,始终为整数值)

    启动设备时,请始终选择将显示缩放为实际尺寸,并以英寸为单位输入实际屏幕尺寸。

    如果不设置设备密度,则模拟器默认为低密度,并且始终加载 ldpi 特定的资源。分辨率(像素尺寸)将是正确的,但与密度相关的图像资源不会按预期显示。

    当然,您所做的任何事情都不会在较低密度的桌面显示器上再现较高密度的图像质量。

以下是截至 2012 年 10 月 1 日的 7 天期间收集的数据。要查看有关 Android 平台版本的最新统计信息,请转到此处

基于屏幕尺寸

在此处输入图像描述

基于屏幕密度

在此处输入图像描述

于 2012-09-04T06:42:22.320 回答
1

设计师应该创建基础设计

base size of mdpi devices * density conversion factor of highest supported density bucket
size.Base 屏幕尺寸为 320 X 480 px,密度桶如下:

  • 低密度脂蛋白:0.75
  • mdpi:1.0(基本密度)
  • 高清:1.5
  • xhdpi: 2.0
  • xxhdpi: 3.0
  • xxxhdpi: 4.0

为了解决 Android 设备上的额外可用空间问题,应该在两个方向(水平和垂直)上使用可拉伸组件。详细信息可在此处获得:

http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/

于 2014-11-20T13:10:38.967 回答