Wilson

自强不息 厚德载物

单位和度量

Android基本单位规范

单位和度量
  • 像素密度

    • 每英寸的像素数被称为“像素密度”。
    • DPI =屏幕宽度(或高度)像素/屏幕宽度(或高度)英寸
    • mdpi-160dpi,
      hdpi-480x800-240dpi,
      xhdpi-720x1280-320dpi,
      xxhdpi-1080x1920-480dpi
    • mipmap-hdpi,
      drawable-hdpi区别:用mipmap会缩放图片并优化性能。
    • MacDown Screenshot
  • 密度独立像素

    • “密度独立”是指在屏幕上用不同的密度来统一的显示用户界面元素
    • MacDown Screenshot
    • 1dp 和 160 dpi 屏幕的一个物理像素相等。计算 dp 的方法:
    dp =(宽度像素*160)/ dpi
    
  • 可扩展像素(sp)

    • 在为安卓系统开发程序时,可扩展的像素(SP)提供和DP一样的功能,但只是在字体上。一个 SP 的默认值和 DP 上的默认值一样。
    • density==scaledDensity,即1sp=1dp,
    • 还是采用dp替代sp,为什么
    public static float applyDimension(int unit, float value,DisplayMetrics metrics)
{
    switch (unit) {
    case COMPLEX_UNIT_PX:
        return value;
    case COMPLEX_UNIT_DIP:
        return value * metrics.density;
    case COMPLEX_UNIT_SP:
        return value * metrics.scaledDensity;
    case COMPLEX_UNIT_PT:
        return value * metrics.xdpi * (1.0f/72);
    case COMPLEX_UNIT_IN:
        return value * metrics.xdpi;
    case COMPLEX_UNIT_MM:
        return value * metrics.xdpi * (1.0f/25.4f);
    }
    return 0;
}
  • pt(磅),标准的长度单位,1pt=1/72英寸,用于印刷业,买蛋糕的时候挺说最多
  • em,em指字体高,1em=16px,任意浏览器的默认字体高都是16px.
字体排版
  • 字体排版的缩放和基本样式
    • 同时使用过多的字体尺寸和样式可以很轻易的毁掉布局,最基本的样式集合就是基于 12、14、16、20 和 34 号的字体排版缩放,以下Google建议字体尺寸:
      MacDown Screenshot
  • 基本色/色彩对比度
    • 最基本的常识是,相同颜色的背景和文字是很难阅读的。但有些人不知道的是,带有过强对比度的文本会有些炫目,同样难以阅读。
    • 文本应当满足对比度7:1的是最适合阅读,最低的对比度4.5:1(依据明度计算),
    • Google对比度建议:MacDown Screenshot
  • 行高
    • 只有“主体”、“次要标题”、“大纲”等类似的样式中才允许使用自动换行。其它所有样式应当以单行形式出现。
    • MacDown Screenshot
    • For all styles, line height is 0.1em larger than the English-like languages. English and English-like languages mostly use a portion of the em box, often the lower portion below the x-height. Chinese, Japanese, and Korean (CJK) ideographic characters use the entire em box. Characters in tall languages often have long descenders and/or ascenders. To achieve the same design intention as English for CJK and to avoid potential text clipping between two lines next to each other for tall languages, the line height needs to be larger than in English for tall and dense languages.
  • 换行规则/连字符
    • 正确:
      MacDown Screenshot
    • 错误
      MacDown Screenshot
  • 每行字符
    • 每行应当保持在50-60个字符左右

    • 太长,用户的眼睛将难以找到在文本上对焦。这是因为过长的文字导致用户难以判断一行的起始点,甚至在大段文字中出现读错行的现象

    • 太短,会导致眼睛来回扫视过于频繁,破坏阅读的节奏。过短的内容还会给人压力,导致用户完成本行阅读前过早跳转到下一行阅读(因此会错过潜在的重要信息)

    • MacDown Screenshot

    • MacDown Screenshot

  • 字间距
    • MacDown Screenshot

Comments