【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高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...
随机推荐
- using 40 logical processors based on SQL Server licensing SqlServer CPU核心数限制问题
公司服务器是120核心cpu,但是实际应用中只有40核,原因是业务部门发现服务器cpu承载30%的时候sql 就会卡死: 然后从sqlserver 去查询,cpu核心数: SELECT COUNT(1 ...
- MySQL ALTER TABLE: ALTER vs CHANGE vs MODIFY COLUMN
ALTER COLUMN 语法: ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} 作用: 设置或删除列的默认值.该操作会直接修 ...
- Ubuntu 16.04 LTS运行robo3t报错
系统环境:Ubuntu 16.04 LTS. 安装robomongo Robo 3T,运行时报以下错误: jaxu@jaxu-ubuntu:/usr/local/share/robo3t--linux ...
- flush table with read lock的轻量级解决方案[原创]
为什么要使用FTWRL MySQL dba在日常工作中,数据备份绝对是工作频度最高的工作内容之一.当你使用逻辑方式进行备份(mydumper,mysqldump)或物理方式进行备份(percona ...
- [转载]innodb 的预读
innodb在io的优化上有个比较重要的特性为预读,innodb以64个page为一个extent,那么innodb的预读是以page为单位还是以extent? 这样就进入了下面的话题:linear ...
- Linux中允许远程用户登录访问mysql的方法
需要手动增加可以远程访问数据库的用户. 方法一.本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项 ...
- Windows环境下在Oracle VM VirtualBOX下克隆虚拟机镜像
1.定位到Vritualbox的安装目录 2.将安装好的.vdi文件复制一份到指定目录下 3.执行 VBoxManage internalcommands sethduuid F:\VirtualBo ...
- windows 连接Linux
服务器:阿里云 ecs 从 Windows 环境远程登录 Linux 实例 远程登录软件的用法大同小异.本文档以 Putty 为例,介绍如何远程登录实例.Putty 操作简单.免费.免安装, 下载地址 ...
- 找出生成json中的error_code,并加以处理
需求: 前段时间调用了百度AI的分词接口,因为不完全支持并发,一些调用产生了错误,混在json内部. 现在需要将未调用成功的内容重新调用一遍. 思考过程: 方法一: 开始想到的是调用的过程当中,如果报 ...
- 如何处理导出的csv无法查看身份证后三位的情况?
如何处理导出的csv无法查看身份证后三位的情况? 原因:excel中如果是常规格式无法显示那么多位数,改成文本格式就可以. 简单步骤,导入数据------>选择数据来源------>选择编 ...