1.px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px会比较多,

2.dip或dp(与密度无关的像素):一个基于density的抽象单位,这个和设备硬件有关,通常在开发中设置一些view的宽高推荐用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。在运行时, Android根据使用中的屏幕的实际密度, 透明地处理任何所需dip单位的缩放。

3.sp(与刻度无关的像素):同dip/dp相似,会根据用户的字体大小偏好来缩放,主要用于设置字体的大小。

可能很多朋友对dip和px 的区别,不是很清楚,包括我自己之前都没弄清楚,下面简单讨论一下:

首先明确一点:

HVGA屏density=160;QVGA屏density=120;

WVGA屏density=240;WQVGA屏density=120

density值表示每英寸有多少个显示点,与分辨率是两个概念。

dip到px的转换公式: px = dip * (density / 160)

Android官方定义dip等价于160dpi屏幕下的一个物理像素点, 即1dip=1px。举例来说, 在 240 dpi 的屏幕上, 1dip 等于 1.5px。

不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例:

1.当density=120时屏幕实际分辨率为240px*400px (两个点对应一个分辨率)状态栏和标题栏高为19px或者25dip。

横屏时屏幕宽度为400px或者800dip,工作区域高度211px或者455dip;

竖屏时屏幕宽度为240px或者480dip,工作区域高度381px或者775dip。

2.当density=160时屏幕实际分辨率为320px*533px (3个点对应两个分辨率)状态栏和标题栏高为25px或者25dip。

横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者455dip;

竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip。

3.当density=240时屏幕实际分辨率为480px*800px (一个点对于一个分辨率)状态栏和标题栏高为38px或者25dip。

横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者455dip;

竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip。

在Android的应用包apk中,系统会根据各个设备的具体情况引用相应的资源文件(注:不加任何标签的资源是各种分辨率情况下共用的):

当屏幕density=240时,使用hdpi标签的资源;

当屏幕density=160时,使用mdpi标签的资源;

当屏幕density=120时,使用ldpi标签的资源。

下面是在manifest中设置app在不同分辨率时,是否支持多密度的方法。

...

android:smallScreens="true"

android:normalScreens="true"

android:largeScreens="true"

android:xlargeScreens="true"

android:anyDensity="true" />

...

附:

系统对屏幕大小和密度分类对照图 :

表 1. Android SDK中包含的模拟器皮肤的屏幕尺寸和密度,以及其他典型的分辨率.Low density (120), ldpiMedium density (160), mdpiHigh density (240), hdpiExtra high density (320), xhdpiSmall screenQVGA (240x320)480x640Normal screenWQVGA400 (240x400)

WQVGA432 (240x432)HVGA (320x480)WVGA800 (480x800)

WVGA854 (480x854)

600x1024640x960Large screenWVGA800** (480x800)

WVGA854** (480x854)WVGA800* (480x800)

WVGA854* (480x854)

600x1024Extra Large screen1024x600WXGA (1280x800)†

1024x768

1280x7681536x1152

1920x1152

1920x12002048x1536

2560x1536

2560x1600

* 要模拟此配置, 使用WVGA800 或 WVGA854创建一个AVD, 指定自定义密度160.

** 要模拟此配置, 使用WVGA800 或 WVGA854创建一个AVD, 指定自定义密度120.

辅助工具类:

import android.content.Context;

public class DensityUtil {

public static int dip2px(Context context, float dipValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (dipValue * scale + 0.5f);

}

public static int px2dip(Context context, float pxValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (pxValue / scale + 0.5f);

}

}

android 电脑屏幕尺寸,Android屏幕计量单位详解 -电脑资料相关推荐

  1. 电脑f2还原系统步骤_详解电脑重装系统步骤

    重新安装系统是在系统无法启动时进行的系统重新安装.我们可以用U盘作为启动盘来安装系统.如果没有辅导,可能会有点复杂.今天,我将与大家分享U盘安装系统的图文教程 U盘具有体积小.携带方便.存储容量大.价 ...

  2. 2021年最全Android屏幕适配的度量单位px dp(dip) ppi dpi sp pt的区别(最详细,屏幕尺寸,屏幕分辨率,屏幕兼容,屏幕适配)

    0 前言 快乐李同学最新在学习Android屏幕适配相关的知识点,其中涉及到了很多Android屏幕适配相关概念和度量单位,但是快乐李同学掌握的相关知识不牢固,于是决定写出这两篇文章对这方面的知识点做 ...

  3. Android 屏幕尺寸、屏幕分辨率(px)、屏幕像素密度(dpi)、密度无关像素(dp/dip)、屏幕适配

    1. dp , dpi , px 关系 (假设已经熟悉了基本概念,也可以参考最后的链接)  2. 运行时dp 如何转换成 px  3.  使用dp 和 px 设计结果比较 参考: Android屏幕适 ...

  4. Android常用计量单位详解(px,in,mm,pt,dp,dip,sp)

    Android常用计量单位详解(px,in,mm,pt,dp,dip,sp) 在传统PC软件开发中经常以像素为单位设计计算机用户界面.例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素, ...

  5. android icon 圆角半径,iOS和安卓APP启动图标的尺寸和圆角值详解

    今天在APP设计交流群里,又有不少的初学的APP设计小伙伴都在问ios端和安卓端的启动图标尺寸大小和圆角半径大小. 第一部分:我们先来看看iOS端的图标的尺寸和圆角大小详解 A.iOS6和之前版本,应 ...

  6. 怎么锁定电脑屏幕_怎么录制视频?在电脑上录制视频的步骤详解

    原标题:怎么录制视频?在电脑上录制视频的步骤详解 作为重要的办公工具之一,电脑可不只是用来发发文件.看看文档,有时候我们还会对它进行录屏.特别是在短视频自媒体行业中,学会.掌握电脑录屏是基础技能,很多 ...

  7. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  8. Android 各大厂面试题汇总与详解(持续更新)

    介绍 目前网络中出现了好多各种面试题的汇总,有真实的也有虚假的,所以今年我将会汇总各大公司面试比较常见的问题,逐一进行解答.会一直集成,也会收集大家提供的面试题,如有错误,请大家指出,经过排查存在,会 ...

  9. android底部滑动出现虚拟按键,Android适配底部虚拟按键的方法详解

    Android适配底部虚拟按键的方法详解 发布时间:2020-10-09 05:26:12 来源:脚本之家 阅读:171 作者:yuanzhihui123 最近项目进行适配的时候发现部分(如华为手机) ...

最新文章

  1. 从面试角度分析LinkedList源码
  2. 《网络安全协议》课程实验大纲
  3. angular入门--filter搜索
  4. register_sysctl_table实现内核数据交互
  5. 软件接口设计_基于PREEvision的AUTOSAR Adaptive设计——上篇
  6. 建站用什么cms_我想做独立站,我应该用什么建站工具?
  7. “相当一部分”HPE公司OpenStack工作人员被转移至SUSE
  8. wireshark 十六进制过滤_Wireshark过滤表达式大全
  9. ios html5 文件上传,【Web前端问题】上传文件使用axios发送FormData数据,参数为空...
  10. 不知风险 何谈 5G?
  11. 牛客网暑期ACM多校训练营7: C. Bit Compression(DFS+预处理)
  12. python 连接hive_python pyhive通过SSH隧道连接hive报错,求解
  13. python用tkinter做简易计算器实验报告_Python Tkinter实现简易计算器功能
  14. vscode配置maven,settings.json文件
  15. 家里有多台无线路由器怎么连接?三种方法解决不同需求
  16. 2. linux安装(1)
  17. 基于 WebGL 的 3D Chart 图表
  18. 网上一位仁兄关于项目管理的总结
  19. 基于DSP 回传音通话降噪链路设计
  20. 【ThreeJS】基础教学 创建一个立方体

热门文章

  1. 黑马程序员 骑士飞行棋源码
  2. Vue使用NProgress进度条 zindex
  3. 这些好用的电脑助手分享给你
  4. 哪些品牌蓝牙耳机适合学生党?平价又好用的蓝牙耳机推荐
  5. trie-51nod1526 分配笔名
  6. arduino低功耗模式_ESP8266+DeepSleep+BMP280+ThingSpeak温度压力高度电量无线低功耗测量...
  7. 摄影师必带三脚架的六个原因
  8. 基于JAVA会展中心招商服务平台计算机毕业设计源码+数据库+lw文档+系统+部署
  9. 现代设计模式讲解,包含React用例
  10. 神秘的程序员们头像包第五发(有妹子!)