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】屏幕尺寸的表示的更多相关文章

  1. 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度

    1.获取Android屏幕尺寸 我们能够通过getSize()方法获得屏幕的尺寸 Display display = getWindowManager().getDefaultDisplay(); P ...

  2. android 屏幕尺寸的理解

    对android设备屏幕尺寸单位的理解 一.android移动设备(手机和平板)常用的关于屏幕的一些单位: 1.px:像素点,应该是一个统一的单位,与我们国际单位米(M)应该是一回事,它应该是屏幕尺寸 ...

  3. Android屏幕尺寸单位转换

    最近在看Android群英传这本书,书中有一节涉及到了,屏幕尺寸与单位.觉得以后可能会用到,做个笔记. PPI(pixels per inch) ,又称为DPI,它是由对角线的像素点数除以屏幕的大小得 ...

  4. Android屏幕尺寸适配注意事项

    1 基本设置 1.1 AndroidManifest.xml设置 在中添加子元素 android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别 ...

  5. Android屏幕尺寸与度量单位(px,dp,sp)简介

    MarkdownPad Document *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...

  6. Android 屏幕尺寸知识

    转自:http://www.zcool.com.cn/article/ZNjI3NDQ=.html 1.了解几个概念 (1)分辨率.分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏 ...

  7. Android屏幕适配全攻略(最权威的官方适配指导)屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi

    Android屏幕适配全攻略(最权威的官方适配指导)原创赵凯强 发布于2015-05-19 11:34:17 阅读数 153734 收藏展开 转载请注明出处:http://blog.csdn.net/ ...

  8. 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)

    来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...

  9. Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

  10. Android屏幕适配全攻略(最权威的官方适配指导) (转)

    招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...

随机推荐

  1. Lucene.net(4.8.0) 学习问题记录三: 索引的创建 IndexWriter 和索引速度的优化

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...

  2. Python中的单例模式的几种实现方式的优缺点及优化

    单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...

  3. MicroPython-GPRS教程之TPYBoardv702GPRS功能测试

    一.什么是TPYBoardV702 TPYBoardV702是目前市面上唯一支持通信通信功能的MicroPython开发板:支持Python3.0及以上版本直接运行.支持GPS+北斗双模通信.GPRS ...

  4. Python打印:九九乘法表

    代码: i = 1 while i <= 9: n = 1 while n <=i: print("%d*%d=%d\t"%(n,i,i*n),end="&q ...

  5. QTableView表格自动拉伸

    QTableView有四个关于自动拉伸的函数: void resizeColumnToContents(int column); void resizeColumnsToContens(); void ...

  6. 使用Tomcat的Reload提高开发速度(翻译)

    欢迎转载http://www.cnblogs.com/coodream2009,有翻译的不太准确的地方请大家指出,我继续修改完善. 按照Java Servlet规范第四部分推荐的,Tomcat系统的实 ...

  7. centos6.5 redis搭建

    redis安装1.wget http://download.redis.io/redis-stable.tar.gz2.tar -zxvf redis-stable.tar.gz3.cd redis- ...

  8. 深入理解ES6之—块级绑定

    var声明与变量提升 使用var关键字声明的变量,无论其实际声明位置在何处,都会被视为声明于所在函数的顶部(如果声明不在任意函数内,则视为在全局作用域的顶部).这就是所谓的变量提升. 块级声明 块级声 ...

  9. 【数论】洛谷P1372又是毕业季

    题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业 ...

  10. 使用elk转存储日志

    ELK指的是由Elastic公司提供的三个开源组件Elasticsearch.Logstash和Kibana. Logstash:开源的服务器端数据处理管道,能够同时 从多个来源采集数据.转换数据,然 ...