【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高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...
随机推荐
- python 常用算法
算法就是为了解决某一个问题而采取的具体有效的操作步骤 算法的复杂度,表示代码的运行效率,用一个大写的O加括号来表示,比如O(1),O(n) 认为算法的复杂度是渐进的,即对于一个大小为n的输入,如果他的 ...
- Winform跨窗体操作控件(使用委托)
Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,F ...
- Proof of Elapsed Time--Hyperledger Sawtooth 共识算法
这一片文章中我们介绍一下Hyperledger Sawtooth项目中所提出的PoET共识算法, 现有的区块链共识算法大概可以分为两种: Nakamoto consensus:通过乐透的方式选择出一个 ...
- python并发之多线程
一开启线程的两种方式 from threading import Thread import time def haha(name): time.sleep(2) print('%s 你大爷..... ...
- Windows程序设计笔记(二) 关于编写简单窗口程序中的几点疑惑
在编写窗口程序时主要是5个步骤,创建窗口类.注册窗口类.创建窗口.显示窗口.消息环的编写.对于这5个步骤为何要这样写,当初我不是太理解,学习到现在有些问题我基本上已经找到了答案,同时对于Windows ...
- Watch time
Stopwatch watch = new Stopwatch(); watch.Start(); ; i <= ; i++) { ; j <= ; j++) { ; k <= ; ...
- JDK源码 - ArrayList
/** * ArrayList源码分析 * @author liyong * */ public class Util { @SuppressWarnings("unchecked" ...
- React Native学习(一)——搭建开发环境
第一次接触React Native,首先搭建环境,过程还算顺利,不过也遇到了些问题,这里简单记录下来.中文官网(http://reactnative.cn/docs/0.47/getting-star ...
- React Native:真机断点调试+跨域资源加载出错问题解决
写在前面 闲来无事,折腾了一下React Native,相比之前,开发体验好了不少.但在真机断点调试那里遇到了跨域资源加载出错的问题,一番探索总算解决,目测是RN新版本调试服务的bug. 遇到类似问题 ...
- Effective Java 第三版——21. 为后代设计接口
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...