【Android】屏幕尺寸的表示
1. 单位
- px(pixel): 普通的像素点描述,位图中的一个颜色点(RGBA或者YUV)
- dip(device independent pixels): 设备独立像素。
- dp: 与dip一样。
- pt(point): 标准长度单位。1pt = 1.0 / 72 (in)。
- sp(scaled pixel): 用于字体显示。
- in(inch): 英寸
- mm(millimeter): 毫米
2. 屏幕密度
| 屏幕类型 | 宽度(pixels) | 高度(pixels) | 尺寸(inches) | 屏幕密度 |
| QVGA | 240 | 320 | 2.6 - 3.0 | low |
| WQVGA | 240 | 400 | 3.2 - 3.5 | low |
| FWQVGA | 240 | 432 | 3.5 - 3.8 | low |
| HVGA | 320 | 480 | 3.0 - 3.5 | medium |
| WVGA | 480 | 800 | 3.3 - 4.0 | high |
| FWVGA | 480 | 854 | 3.5 - 4.0 | high |
| WVGA | 480 | 800 | 4.8 - 5.5 | medium |
| FWVGA | 480 | 854 | 5.0 - 5.8 | medium |
默认屏幕密度:low = 120; medium = 160; high = 240
3. 屏幕单位的换算
/frameworks/base/core/java/android/util/TypedValue.java
303 /**
304 * Converts an unpacked complex data value holding a dimension to its final floating
305 * point value. The two parameters <var>unit</var> and <var>value</var>
306 * are as in {@link #TYPE_DIMENSION}.
307 *
308 * @param unit The unit to convert from.
309 * @param value The value to apply the unit to.
310 * @param metrics Current display metrics to use in the conversion --
311 * supplies display density and scaling information.
312 *
313 * @return The complex floating point value multiplied by the appropriate
314 * metrics depending on its unit.
315 */
316 public static float applyDimension(int unit, float value,
317 DisplayMetrics metrics)
318 {
319 switch (unit) {
320 case COMPLEX_UNIT_PX:
321 return value;
322 case COMPLEX_UNIT_DIP:
323 return value * metrics.density;
324 case COMPLEX_UNIT_SP:
325 return value * metrics.scaledDensity;
326 case COMPLEX_UNIT_PT:
327 return value * metrics.xdpi * (1.0f/72);
328 case COMPLEX_UNIT_IN:
329 return value * metrics.xdpi;
330 case COMPLEX_UNIT_MM:
331 return value * metrics.xdpi * (1.0f/25.4f);
332 }
333 return 0;
334 } /frameworks/base/core/java/android/util/DisplayMetrics.java
public static final int DENSITY_LOW = 120;
public static final int DENSITY_MEDIUM = 160;
public static final int DENSITY_TV = 213;
public static final int DENSITY_HIGH = 240;
public static final int DENSITY_XHIGH = 320;
public static final int DENSITY_400 = 400;
public static final int DENSITY_XXHIGH = 480;
public static final int DENSITY_560 = 560;
public static final int DENSITY_XXXHIGH = 640;
public static final int DENSITY_DEFAULT = DENSITY_MEDIUM;
public static final float DENSITY_DEFAULT_SCALE = 1.0f / DENSITY_DEFAULT; public static int DENSITY_DEVICE = getDeviceDensity();
density = DENSITY_DEVICE / (float) DENSITY_DEFAULT; px = dip * density = dip * DENSITY_DEVICE / DENSITY_DEFAULT.
【Android】屏幕尺寸的表示的更多相关文章
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
1.获取Android屏幕尺寸 我们能够通过getSize()方法获得屏幕的尺寸 Display display = getWindowManager().getDefaultDisplay(); P ...
- android 屏幕尺寸的理解
对android设备屏幕尺寸单位的理解 一.android移动设备(手机和平板)常用的关于屏幕的一些单位: 1.px:像素点,应该是一个统一的单位,与我们国际单位米(M)应该是一回事,它应该是屏幕尺寸 ...
- Android屏幕尺寸单位转换
最近在看Android群英传这本书,书中有一节涉及到了,屏幕尺寸与单位.觉得以后可能会用到,做个笔记. PPI(pixels per inch) ,又称为DPI,它是由对角线的像素点数除以屏幕的大小得 ...
- Android屏幕尺寸适配注意事项
1 基本设置 1.1 AndroidManifest.xml设置 在中添加子元素 android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别 ...
- Android屏幕尺寸与度量单位(px,dp,sp)简介
MarkdownPad Document *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...
- Android 屏幕尺寸知识
转自:http://www.zcool.com.cn/article/ZNjI3NDQ=.html 1.了解几个概念 (1)分辨率.分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏 ...
- Android屏幕适配全攻略(最权威的官方适配指导)屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi
Android屏幕适配全攻略(最权威的官方适配指导)原创赵凯强 发布于2015-05-19 11:34:17 阅读数 153734 收藏展开 转载请注明出处:http://blog.csdn.net/ ...
- 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)
来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...
- Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...
- Android屏幕适配全攻略(最权威的官方适配指导) (转)
招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...
随机推荐
- Linux服务管理1-1 课程简介与系统运行级别
- 实战经验分享之C#对象XML序列化
.Net Framework提供了对应的System.Xml.Seriazliation.XmlSerializer负责把对象序列化到XML,和从XML中反序列化为对象.Serializer的使用比较 ...
- PE解析器的编写(四)——数据目录表的解析
在PE结构中最重要的就是区块表和数据目录表,上节已经说明了如何解析区块表,下面就是数据目录表,在数据目录表中一般只关心导入表,导出表和资源这几个部分,但是资源实在是太复杂了,而且在一般的病毒木马中也不 ...
- 虚拟机迁移(QEMU动态迁移,Libvirt动(静)态迁移)
动静态迁移的原理 静态迁移是指在虚拟机关闭或暂停的情况下,将源宿主机上虚拟机的磁盘文件和配置文件拷贝到目标宿主机上.这种方式需要显式的停止虚拟机运行,对服务可用性要求高的需求不合适. *** 动态迁移 ...
- ABAP开发人员未来应该学些什么
2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...
- 通过Chocolatey软件包管理器安装.NET Core
在Linux的世界里,有了yum/apt-get百分之九十的软件都可以通过它来安装管理.但是在Windows系统上,装个软件还是挺折腾的.比如我要装个Chrome浏览器,我先得打开IE浏览器吧,我还打 ...
- liveshow回顾
在2017年8月14号的一天接到一个即看即买的项目,大致功能如下 1.现场走秀直播同步到H5页面 2.实时显示直播间人数 3.点赞并实时显示给用户 4.在某个时间点,可以全体推送一些消息给所有用户 5 ...
- python 列表(list)常用操作
a = [1,2,3,4,1,1,1,1] 删除操作 删除元素1 a.remove(1) 删除第二个元素 del a[1] 默认删除最后一个,给脚标就会删除指定脚标元素 pop() 方法 a.pop( ...
- 内核知识第八讲,PDE,PTE,页目录表,页表的内存管理
内核知识第八讲,PDE,PTE,页目录表,页表的内存管理 一丶查看GDT表. 我们通过WinDbg + 虚拟机可以进行双机调试.调试一下看下GDT表 我们知道,GDT表中.存储的是存储段信息. 保存了 ...
- 关于构造函数和原型prototype对象的理解
构造函数 1.什么是构造函数 构造函数,主要用于对象创建的初始化,和new运算符一起用于创建对象,一个类可以有多个构造函数,因为函数名相同,所以只能通过参数的个数和类型不同进行区分,即构造函数 ...