android ui 适配(tv)

1、dpi ,dip(dp), density

几个比较难描述的概念,摘这个blog的:
http://www.cnblogs.com/wader2011/archive/2011/11/29/2267490.html

  1. density: 屏幕密度
    指每平方英寸中的像素数。
    Density=Resolution/Screen size
    在DisplayMetrics类中属性density的值为dpi/160(可用于px与dip的互相转换)

  2. dpi: (dots per inch 像素密度)
    每英寸中的像素数。如160dpi指手机水平或垂直方向上每英寸距离有160个像素点。假定设备分辨率为320*240,屏幕长2英寸宽1.5英寸,dpi=320/2=240/1.5=160
    简单的估算可以用ppi 也就是买手机时经常会标的参数:
    =屏幕对角线的像素长度/屏幕对角线的尺寸

  3. dip = dp: (Device-independent pixel,设备独立像素)
    dip值 =设备密度/160* pixel值
    dip值 =density* pixel值

2、常见设备对应值

理想设备
- xxhdpi -> dpi=480 ->density=3
- xhdpi -> dpi=320 -> density=2
- hdpi -> dpi=240 -> density=1.5
- mdpi -> dpi=160 -> density=1

其中:

  • 手机设备 720p 对应 xhdpi
  • 手机设备 1080p 对应 xxhdpi
  • tv 设备 720p 对应 mdpi
  • tv 设备 1080p 对应 hdpi

3、标注与切图 设计图对取图的影响

  1. ui 图的标注,切图和 设计图的分辨率有关系。
    比如针对android开发的ui图给图也是跟着主流设备走,一个发展的过程:
    480*800 -> 720*1280 -> 1080*1920 -> (以后2k屏幕)
    手机(480*800 hdpi = 1.5) ->(720*1280 xhdpi = 2) -> (1080*1920 xxhdpi = 3)
    tv (720*1280 mdpi = 1) -> (1080*1920 hdpi = 1.5)

  2. ios设备给图的顺序:
    640x960 -> 640x1136 -> i6的具体怎么给没琢磨

  3. 然后有些公司比较抠门,是android 照着ios的设计图做的,也就是说
    在android设备盛行720p(i4s时代) android 的设计稿用的640*960
    在android设备盛行1080p(i5s时代) android 的设计稿用的640*1136
    因为android 照着ios的设计图做,开发自行转换算出来的值其实是偏小的。

3.1、距离的标注

例如:比如对字体的标注,一个控件和另一个控件之间的距离标注。

  1. 设计图1080*1920 上的一个距离是 100.0px 对应
    在1080*1920 - xxhdpi 的设备上对应的就是 100.0 / 3 dp
    在1080*1920 -xhdpi(tv) 的设备上对应的就是 100.0 / 1.5 dp
    在720*1280- xxhdpi 的设备上对应的就是 100*(720/1080) /3 dp
    在720*1280 - mdpi (tv)的设备上对应的就是 100*(720/1080)/1 = 100/1.5dp

  2. 设计图720*1280上的一个距离是 100.0px 对应
    在720*1280- xxhdpi 的设备上对应的就是 100/3 dp
    在720*1280 - mdpi(tv) 的设备上对应的就是 100/1 dp
    在1080*1920 - xxhdpi 的设备上对应的就是 100.0 * (1080/720) / 3 dp=100/4.5dp
    在1080*1920 -xhdpi (tv)的设备上对应的就是 100.0 * (1080/720) / 1.5 dp = 100/1dp

3.2、图片切图

切图的计算方式和距离的标注的计算方式不同

3.2.1设计图 = 1080 * 1920 icon = 232*232

手机尺寸
xxhdpi:xhdpi:hdpi:mdpi = 6:4:3:2 其中设计图与xxhpi的图标大小一致
xxhpi 232*232
xhdpi 155*155
hdpi 116*116
mdpi 77*77

tv尺寸
hdpi:mdpi = 1.5 :1

hdpi 232 x 232
mdpi 155 x 155

3.2.2设计图 = 720 * 1080 icon = 232*232

xxhdpi:xhdpi:hdpi:mdpi = 6:4:3:2 其中设计图与xhpi的图标大小一致

xxhdpi 348x348
xhpi 232x232
hdpi 174x174
mdpi 116x116


tv尺寸
hdpi:mdpi = 1.5:1
hdpi 348x348
mdpi 232x232

4、参考

[官]http://developer.android.com/intl/zh-cn/guide/practices/screens_support.html

你可能感兴趣的:(android,Tv)