Android设计中的尺寸问题
来源:互联网 发布:ppt图表无法编辑数据 编辑:程序博客网 时间:2024/05/21 07:57
Android把屏幕大小分成四种:small, normal, large, xlarge;
屏幕密度分成:low(ldpi), medium(mdpi), high(hdpi), extra high(xhdpi);各个屏幕密度之间的关系如下:
dpi(dot per inch):每英寸像素点的个数,1英寸=2.54厘米,平时大家说的4.3英寸、4.5英寸其实是屏幕对角线的长度。
dp(density independent pixel):独立密度像素,使用dp作为单位设置控件,不管屏幕或dpi多大,其显示效果都是一致的;如果使用px,则会出现显示不一致的效果。例如对于长度为160px的线段,在密度为160dpi,宽度为1英寸的屏幕上会填满整个屏幕;而对于密度为320dpi,宽度同样为1英寸的屏幕上,只会填满半个屏幕;即对于两个物理尺寸相同,但是dpi不同的屏幕,其显示效果的差异会很大。
pixel、dp、dpi的关系如下:
px = dp *
(dpi/160)
原则1:在给Android界面切图时,一般采用160dpi作为基准。因为以160dip作为基准,只要切图的长和宽的像素点个数是4的倍数,则xhdpi下该图在长宽上的像素个数可以乘以2,hdpi下乘以1.5,ldpi下乘以0.75,结果得到的长宽上的像素点个数都是整数。如果以240dpi作为基准,则240下切图长宽的像素点个数需要是3的倍数,相应的在xhdpi下乘以1.333333,mdpi下乘以0.66666,ldpi下除以2;这样会得到非整形的像素点个数。
QVGA, WQVGA的屏幕密度是:120
HVGA的屏幕密度是:160
WVGA的屏幕密度是:240
其中,ldpi的资源不是必须的,当提供hdpi的资源时,系统会自动将hdpi的资源缩小一半来适配ldpi的屏幕
注:屏幕密度和屏幕分辨率是不同的概念,通过屏幕分辨率和尺寸,可以计算出屏幕密度;例如分辨率为320*480,屏幕尺寸为3.2英寸(对角线长度),则屏幕密度为:
注: dip就是dp
sp(scale independent pixel):缩放无关像素,跟dp类似,唯一不同的是,该单位会受系统字体设置的影响,通常用在字体上。Android规范中规定的常用字体大小:
DisplayMetrics类
DisplayMetrics是用于描述屏幕相关参数的类,访问DisplayMetrics的方法:
DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay.getMetrics(metrics);
然后就可以访问metrics变量中的各个常量、字段和方法了
- density : 屏幕密度
- densityDpi: 屏幕密度,以dpi为单位
- heightPixels:屏幕高度,以像素为单位
- widthPixels:屏幕宽度,以像素为单位
- xdpi:屏幕X方向的屏幕密度
- ydpi:屏幕Y方向的屏幕密度
市场数据
排名前几位的屏幕分辨率:
数据来源:http://www.umindex.com/devices/android_resolutions
相关链接
- https://developer.android.com/design/style/devices-displays.html
- http://developer.android.com/training/basics/supporting-devices/screens.html
- http://www.25xt.com/allcode/4269.html
- Android设计中的尺寸问题
- Android的设计尺寸
- android中的各种尺寸
- Android中的尺寸单位
- Android中的尺寸
- 网页设计中的页面尺寸
- Android & iOS设计尺寸规范
- Android 图标尺寸与设计
- JS中的各种尺寸问题
- android web开发中的尺寸
- Android中的尺寸单位比较
- Android中的尺寸单位2
- Android中的单位和尺寸
- Android中图标尺寸问题
- Android屏幕分辨率,尺寸获取问题
- 网页设计中的页面尺寸标准
- 网页设计中的页面尺寸标准
- Android解决AutoLayout不能设置多种设计稿尺寸的问题
- centos6.4 rpm mysql安装步骤
- shell实例
- radius基本交互步骤
- hdoj 1599 find the mincost route 【最短路径floyd + 最小环】
- VE
- Android设计中的尺寸问题
- error C2144: 语法错误:“__w64 unsigned int”的前面应有“;
- OFDM
- Java类库2
- 梦想需要现实来支撑
- java Swing中随机验证码的实现
- quintic蓝牙芯片广播中添加MAC地址的方法
- Oracle学习(11):PLSQL程序设计
- oracle创建dblink