• 移动应用界面设计的尺寸设置及规范


    http://www.tuicool.com/articles/zIZBVj

    一、android篇

    1、android分辨率

    Android的多分辨率,一向是设计师和开发者非常头疼的事儿。尽管如此,对于多分辨造成的复杂问题,也是大家要优先解决的。Android支持多种不同的dpi模式:ldpi 、mdpi 、hdpi 、xhdpi 、xxhdpi 、xxxhdpi 
    dpi
    注意,ppi、dpi 是密度单位,不是度量单位 : 
    * ppi (pixels per inch):图像分辨率 (在图像中,每英寸所包含的像素数目) 
    * dpi (dots per inch): 打印分辨率 (每英寸所能打印的点数,即打印精度)

    dpi主要应用于输出,重点是打印设备上;ppi对于设计师应该比较熟悉,photoshop画布的分辨率常设置为72像素/英寸,这个单位其实就是ppi 。尽管概念不同,但是对于移动设备的显示屏,可以看作ppi=dpi 。

    ppi的运算方式是:PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数。即:长、宽各自平方之和的开方,再除以屏幕对角线的英寸数。

    以iphone5为例,其ppi=√(1136px² + 640px²)/4 in=326ppi(视网膜Retina屏) 
    对于android手机,一个不确切的分法是,720 x 1280 的手机很可能接近 320 dpi (xhdpi模式),480 x 800 的手机很可能接近 240 dpi (hdpi模式),而320 x 480 的手机则很接近 160 dpi(mdpi模式)。

    来自友盟指数2014年3月份的数据( 戳这里看最新数据 ): 
    480 x 800的手机占比最高为31.9%,720 x 1280的手机占比为16.5%位居第二,而240 x 320的手机占比最少为1.0% 。xxdhpi模式的高分辨率1080 x 1920手机占比也越来越高,目前为6.1% 。

    2、单位换算方法

    android开发中,文字大小的单位是sp,非文字的尺寸单位用dp,但是我们在设计稿用的单位是px。这些单位如何换算,是设计师、开发者需要了解的关键。 
    * dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px。dp和px的换算公式 :dp*ppi/160 = px。对于320ppi的屏幕,1dp x 320ppi/160 = 2px。 
    * sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。sp 与 px 的换算公式:sp*ppi/160 = px。对于320ppi的屏幕,1sp x 320ppi/160 = 2px。 
    简单理解的话,px(像素)是我们UI设计师在PS里使用的,同时也是手机屏幕上所显示的,dp是开发写layout的时候使用的尺寸单位。

    为什么要把sp和dp代替px? 原因是他们不会因为ppi的变化而变化,在相同物理尺寸和不同ppi下,他们呈现的高度大小是相同。也就是说更接近物理呈现,而px则不行。

    根据单位换算方法,可总结出: 
    当运行在mdpi下时,1dp=1px :也就是说设计师在PS里定义一个item高48px,开发就会定义该item高48dp ; 
    当运行在hdpi模式下时,1dp=1.5px :也就是说设计师在PS里定义一个item高72px,开发就会定义该item高48dp ; 
    当运行在xhdpi模式下时,1dp=2px :也就是说设计师在PS里定义一个item高96px,开发就会定义该item高48dp ; 
    当你的app需要适配多个dpi模式的时候,请参考图1的比例进行换算 。

    3、设计稿基本元素的尺寸设置

    为了适应多分辨率的手机,理想的方式是为每种分辨率做一套设计稿,包括所用到的icon、设计稿标注等。但在实际开发中,这种方法耗时耗力。所以通常会选择折中的方法。

    方法一: 在标准基础上(比如xhdpi)开始,然后放大或缩小,以适应到其他尺寸。不足之处是,对于更高分辨率的手机,图标被放大后会导致质量不高。 
    方法二: 以最高分辨率为基准设计,然后缩小适应到所需的小分辨率上。缺点是,图标等若都最大尺寸,加载时速度慢且耗费流量较多,对于小分辨率的用户也不够好。

    结合友盟的分辨率占比数据、也为了方便换算到android开发中的尺寸单位, 推荐设计稿的画布尺寸选用 720X1280 ,分辨率仍旧为72ppi(像素/英寸) 。

    在android规范中对于导航栏、工具栏等的尺寸没有明确的规定。但根据48dp原则,以及一些主流的android应用的截图分析,总结一下尺寸要求: 
    状态栏高度: 50 px 
    导航栏、操作栏高度: 96 px=48dp x 2 
    主菜单栏高度: 96 px 
    内容区域高度: 1038 px (1280-50-96-96=1038) 
    Android最近出的手机都几乎去掉了实体键,把功能键移到了屏幕中,高度也和菜单栏一样为:96 px

    4、图标和字体大小(来自官方规范文档)

    a、启动图标(home页或app列表页) 
    整体大小为48 x 48 dp 
    iconLoad

    b、操作栏图标,代表用户在app中可以使用到的最重要的图标 
    整体大小为32 x 32 dp ,图形实际区域为 24 x 24 dp 
    iconBar

    c、小图标/场景图标,提供操作或特定项目的状态。 
    比如gmail app的星型标记、一些内容展开收起用到的向下向上的图标等。整体大小为16 x 16 dp ,图形实际区域为 12 x 12 dp 。 
    iconSmall

    d、通知图标 
    如果app有通知,要提供一个有新通知时显示在状态栏的通知图标。整体大小为24 x 24 dp ,图形实际区域为 22 x 22 dp 。 
    iconNotice

    注:android规范提供的尺寸单位是dp,若设计稿尺寸设为720 x 1280 ,图标大小需在规范要求的尺寸数字上乘以2。比如操作栏图标32 x 32 dp ,则设计稿上应该是64 x 64 px 。

    e、字体大小 
    Android规范中的要求如下: 
    androidFont

    前面提到Android开发中的字号单位是sp,而换算关系是 sp*ppi/160 = px 。所以720 x 1280尺寸的设计稿上,字体大小可选择为 24px 、28px 、32px 、36px ,主要根据文字的重要程度来选择,特殊情况下也可能选择更大或更小的字体。

    f、其他尺寸要求 
    通常把48dp作为可触摸的UI元件的标准。 
    android48dp

    为什么要用48dp呢?一般来说,48dp转化为一个物理尺寸约9毫米。通常建议目标大小为7-10毫米,以方便用户手指能准确并且舒适触摸目标区域。 
    如果你设计的元素高和宽至少48dp,你就可以保证: 
    (1)触摸目标绝不会比建议的最低目标(7mm)小,无论在什么屏幕上显示。 
    (2)在整体信息密度和触摸目标大小之间取得了一个很好的平衡。 
    另外,每个UI元素之间的空白通常是8dp 。

    5、一点疑问供探讨

    在720 x 1280 px 的设计稿上,有两个按钮(比如登录、注册)并排一行放置,尺寸均为320 x 80 px ,换算为android开发单位就是 160 x 40 dp 。 
    根据前面的计算方式,如果显示在 480 x 800的手机上,反过来换算为px尺寸就是 240 x 60 px ,此时两个按钮排放在一行,刚好是480px=屏幕横向尺寸,铺满了整行,显然显示效果并不合适。

    如果遇到这种情况,如何做呢?咨询android开发工程师,得到的答案是可能需要做自适应处理,不过目前他们都是写固定的dp值。所以我想设计师是否也需要考虑——在基准分辨率下设置的尺寸换算在其他分辨率下,是否也能优雅显示?

  • 相关阅读:
    PHP 大小写转换、首字母大写、每个单词首字母大写转换相关函数
    【论文学习4】BiSample: Bidirectional Sampling for Handling Missing Data with Local Differential Privacy
    【论文学习3】Local Differential Privacy for Deep Learning
    【论文学习2】 Differential Privacy Reinforcement Learning
    深度学习中的优化算法
    Spatial crowdsourcing
    “pip install tensorflow ”出现错误
    python或pip'不是内部或外部命令”
    pip install torch出现错误
    打不开gitHub的解决方法
  • 原文地址:https://www.cnblogs.com/H-BolinBlog/p/5562697.html
Copyright © 2020-2023  润新知