android ui 适配(tv)
1、dpi ,dip(dp), density
几个比较难描述的概念,摘这个blog的:
http://www.cnblogs.com/wader2011/archive/2011/11/29/2267490.html
density: 屏幕密度
指每平方英寸中的像素数。
Density=Resolution/Screen size
在DisplayMetrics类中属性density的值为dpi/160(可用于px与dip的互相转换)dpi: (dots per inch 像素密度)
每英寸中的像素数。如160dpi指手机水平或垂直方向上每英寸距离有160个像素点。假定设备分辨率为320*240,屏幕长2英寸宽1.5英寸,dpi=320/2=240/1.5=160
简单的估算可以用ppi 也就是买手机时经常会标的参数:
=屏幕对角线的像素长度/屏幕对角线的尺寸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、标注与切图 设计图对取图的影响
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)ios设备给图的顺序:
640x960 -> 640x1136 -> i6的具体怎么给没琢磨然后有些公司比较抠门,是android 照着ios的设计图做的,也就是说
在android设备盛行720p(i4s时代) android 的设计稿用的640*960
在android设备盛行1080p(i5s时代) android 的设计稿用的640*1136
因为android 照着ios的设计图做,开发自行转换算出来的值其实是偏小的。
3.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设计图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自动化测试解决方案
- RK3288 android7.1.2 android studio 用户空间通过spi ioctl读取
- Ubuntu 10.04不能连接到HTC G1设备
- Android获取定位权限,获取设备所在的经纬度
- mac 下android开发 eclipse中找不到设备
- 远程登录android手机
- 探讨Android与iOS,我们将何去何从?
- Android(安卓)Studio 3.6.2 | 使用内置文件浏览器查看文件
- Android系列 adb操作命令详解