Android屏幕尺寸详解

article/2025/11/9 9:05:26

1.重要概念

随着Android厂商对系统的不断定制,Android出现越来越多不同尺寸的手机,由于尺寸和分辨率等不同,从而导致Android的适配成为一个老大难的问题,今天我们就来聊聊Android中的屏幕尺寸。

我们先了解一下几个重要的概念:

  • 什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?
  • 什么是dp、dip、dpi、sp、px?
  • 什么是ldpi、mdpi、hdpi、xdpi、xxdpi?

(1)什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?

(A)屏幕尺寸

屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米,

比如常见的屏幕尺寸有4英寸,4.5英寸,4.0英寸,5.0英寸,5.2英寸,5.4英寸,5.99英寸,6.0英寸,6.2英寸等。

在这里插入图片描述

(B)屏幕分辨率

屏幕分辨率:分辨率是手机屏幕的像素点总数,一般用屏幕宽的像素点数乘以屏幕高的像素点数,单位是px,1px=1个像素点,如1080x1920。

(C)屏幕像素密度

屏幕像素密度(dpi-dots per inch / ppi-pixels per inch):是指每英寸上的像素点数,屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

计算公式:dpi = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数

如果5.0英寸的手机的屏幕分辨率为1920x1080,那么它的像素密度为440dpi(计算对角线上的像素数)。

(D)屏幕密度

屏幕密度其实就是像素密度的另外一种表示,是以160dpi=1.0为基准的,手机出厂之后屏幕密度,包括X,Y轴方向的像素密度都是固定值。

一般情况下的普通屏幕:ldpi=120dpi,mdpi=160dpi,hdpi=240dpi,xhdpi=320dpi ,xxhdpi=480dpi。

Android以像素密度160dpi为基准对屏幕进行划分,当像素密度为160dpi时屏幕密度为1.0,像素密度为120dpi时屏幕密度为0.75,像素密度为320dpi时屏幕密度为2.0。

(2)什么是dp、dip、dpi、sp、px?

(A)px

前面的分辨率就是用的像素为单位,大多数情况下,比如UI设计、Android原生API都会以px作为统一的计量单位,像是获取屏幕宽高等。

(B)dip/dp

dip和dp是一个意思,都是Density Independent Pixels的缩写,即密度无关像素,上面我们说过,dpi是屏幕像素密度,假如一英寸里面有160个像素,这个屏幕的像素密度就是160dpi,那么在这种情况下,dp和px如何换算呢?

在Android中,规定以160dpi为基准(320x480,3.6寸),此时1dip=1px,如果密度是320dpi,则1dip=2px,以此类推。

关系式:px = dp * (dpi / 160)

假如同样都是画一条320px的线,在480x800分辨率手机上显示为2/3屏幕宽度,在320x480的手机上则占满了全屏。

如果使用dp为单位,在这两种分辨率下,160dp都显示为屏幕一半的长度。这也是为什么在Android开发中,写布局的时候要尽量使用dp而不是px的原因。

(C)sp

即scale-independent pixels,与dp类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。

(3)什么是ldpi、mdpi、hdpi、xdpi、xxdpi?

我们先来看两张不同dpi对应的大致分辨率。

这里写图片描述

这里写图片描述

其中:

ldpi : mdpi : hdpi : xhdpi : xxhdpi : xxxdpi =  0.75 : 1 : 1.5 : 2 : 3 : 4  =  3 : 4 : 6 : 8 : 12 : 16

这个比值乘以12就得到对应屏幕密度手机桌面icon图标大小。

2.如何获取屏幕分辨率和像素密度,屏幕密度

 private void getScreenInfo() {// (1)通过Display获取屏幕分辨率int screenWidth  = getWindowManager().getDefaultDisplay().getWidth();		// 屏幕宽int screenHeight = getWindowManager().getDefaultDisplay().getHeight();		// 屏幕高Log.e( "屏幕分辨率_1:", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);// (2)通过DisplayMetrics获取像素密度和屏幕密度等DisplayMetrics dm = null;//DisplayMetrics dm = new DisplayMetrics();//dm = getResources().getDisplayMetrics();//或者dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);float density  = dm.density;		// 屏幕密度(像素比例:0.75/1.0/1.5/2.0)int densityDPI = dm.densityDpi;		// 像素密度(每寸像素:120/160/240/320)float xdpi = dm.xdpi;               //X轴方向的精确物理像素float ydpi = dm.ydpi;                //Y轴方向的精确物理像素Log.e("XY轴方向上的每英寸的精确物理像素:", "xdpi=" + xdpi + ",ydpi=" + ydpi);Log.e( " 像素密度和屏幕密度:", "density=" + density + ",densityDPI=" + densityDPI);screenWidth  = dm.widthPixels;		// 屏幕宽screenHeight = dm.heightPixels;		// 屏幕高Log.e("屏幕分辨率_2:", "screenWidth=" + screenWidth + ",screenHeight=" + screenHeight);
}

结果如下:

adb shell getprop  =   [ro.sf.lcd_density]: [320]
adb shell wm size  =  Physical size: 1920x12802022-03-23 14:10:47.968 13447-13447/com.example.myapplication E/屏幕分辨率_1:: screenWidth=1920; screenHeight=1280
2022-03-23 14:10:47.968 13447-13447/com.example.myapplication E/XY轴方向上的每英寸的精确物理像素:: xdpi=219.675,ydpi=219.675
2022-03-23 14:10:47.968 13447-13447/com.example.myapplication E/ 像素密度和屏幕密度:: density=2.0,densityDPI=320
2022-03-23 14:10:47.968 13447-13447/com.example.myapplication E/屏幕分辨率_2:: screenWidth=1920,screenHeight=1280

3.Android手机常见分辨率

4:3的尺寸:
VGA :640x480 (Video Graphics Array)
QVGA :320x240 (Quarter VGA)
HVGA :480x320 (Half-size VGA)
SVGA :800x600 (Super VGA)5:3的尺寸:
WVGA :800x480 (Wide VGA)16:9的尺寸:
FWVGA: 854x480 (Full Wide VGA)
HD :1920x1080 High Definition
QHD :960x540
720p :1280x720 标清
1080p :1920x1080 高清一般分辨率对应DPI:
"HVGA mdpi"
"WVGA hdpi "
"FWVGA hdpi "
"QHD hdpi "
"720P xhdpi"
"1080P xxhdpi "

4.部分机器屏幕密度分析

(A)屏尺寸:5.5英寸,1920×1080像素,对应xxdpi:

dpi = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数 = √(1920² + 1080²) / 5.5 = 400.5
density = dpi/160 = 440.6/160 = 2.5
对应dpi为xdpi/xxdpi都可以。

(B)屏尺寸:6.1英寸,像素1280×720,对应hdpi:

dpi = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数 = √(1280² + 720²) / 6.1 = 240.75
density = dpi/160 = 240.75 /160 = 1.5
这个数值,刚刚好是hdpi。

(C)屏尺寸:5英寸,1920x1080像素,对应xxdpi:

dpi = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数 =2202.9 /5 = 440.6
density = dpi/160 = 440.6/160 = 2.75
就近原则,对应dpi为xxdpi,与测试结果一致。


http://chatgpt.dhexx.cn/article/hdGJRkpK.shtml

相关文章

IOS界面尺寸

点击打开链接 Phone开发中经常用到的控件尺寸大集合 有个网上的介绍很强大,直接搬运过来 Element Size (in points) Window (including status bar) 320 x 480 pts Status Bar (How to hide the status bar) 20 pts View inside window (visible status bar) 32…

ps做手机计算机界面,手机设计!移动设备的界面设计尺寸

刚开始接触UI的时候,碰到的最多的就是尺寸问题,什么画布要建多大、文字该用多大才合适、我要做几套界面才可以?什么七七八八的也着实让人有些头疼。 废话不多说,希望大家耐心看完后,不用再纠结于尺寸相关的东西了~ IOS…

最新App、手机网站尺寸规范—移动设备界面UI设计尺寸规范

app项目的一大难点就是,样式要兼容各种屏幕大小

移动端UI设计尺寸规范以及iPhone尺寸大小

本文整理汇总了一些界面设计(iOS系统)中常用的一些尺寸规范和方法,如控件间距、适配、标注、切图等,设计师在设计时并不一定要严格遵守,但对这些规范应有所了解,并融会贯通。 目录 界面设计尺寸及栏高度边…

UI界面的尺寸规范

一、名词解释 1.DPI (Dots Per Inch): 点数密度。所表示的是每英寸所拥有的点数量。Android特有单位 DPI数值越高,即代表显示屏能够以越高的密度显示图像,从而得出,显示的密度越高,显示器显示的就越真实、越清晰 2.PPI&#xf…

手机APP UI设计尺寸基础知识

从原理开始介绍一下移动端设计尺寸规范初涉移动端设计和开发的同学们,基本都会在尺寸问题上纠结好一阵子才能摸到头绪。我也花了很长时间才弄明白,感觉有必要写一篇足够通俗易懂的教程来帮助大家。从原理说起,理清关于尺寸的所有细节。由于是…

手机设计尺寸 - iPhone界面尺寸

参考网址: http://www.qijishow.com/down/app-index.htm iPhone界面尺寸 设备分辨率PPI状态栏高度导航栏高度标签栏高度iPhone6 plus设计版 12422208 px401PPI60px132px146pxiPhone6 plus放大版 11252001 px401PPI54px132px146pxiPhone6 plus物理版 10801920 px401P…

安卓屏幕分辨率及UI尺寸详解

1、了解几个概念 (1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽高”,安卓手机屏幕常见的分辨率有480800、7201280、10801920等。7201280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。 &…

UI app界面的尺寸规范

UI界面的尺寸规范 上周更了一篇关于Android系统界面设计的尺寸规范,有些小伙伴看了以后存在部分尺寸上的疑问,这次把这些地方简单的解释了一下,顺便把iOS系统规范也加上了,两者可以做一个对比。在这里我要强调的是这是移动端的样…

Android 界面设计尺寸规范

这里取用640*960的尺寸设计,那我们就说说在这个尺寸下这些元素的尺寸。 状态栏:就是我们经常说的信号、运营商、电量等显示手机状态的区域,其高度为:40px导航栏:显示当前界面的名称,包含相应的功能或者页面…

手机端web/app界面设计尺寸规范

手机端web/app界面设计尺寸规范 移动端高清、多屏适配方案 背景 开发移动端H5页面面对不同分辨率的手机面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿。 对于移动端开发而言,为了做到页面高清的效…

Android界面尺寸规范

这样的手机又vivo智能收款机、三星Galaxy A5、华为荣耀等手机。 这样的手机屏幕尺寸是:5寸 即屏幕对角线是5英寸。 计算方法:1280平方+720平方=2156800,结果再开平方=1468.6048,再5,…

【移动端】手机界面的设计尺寸

从设计方面来看,做手机界面设计的尺寸一般分为iPhone和Android两种设备。 Android的常用逻辑分辨率: Android的常用逻辑分辨率:参考屏幕尺寸大全 360 * 640 、 360 * 720、 360 * 740、 360 * 760、 360 * 780、 360 * 800 411 * 731 48…

移动界面尺寸!安卓720*1280界面尺寸规范参考

这样的手机又vivo智能收款机、三星Galaxy A5、华为荣耀等手机。 这样的手机屏幕尺寸是:5寸 即屏幕对角线是5英寸。 计算方法:1280平方+720平方=2156800,结果再开平方=1468.6048,再5&…

搭建nginx代理服务器

搭建nginx代理服务器 原理:1、在proxy-1的nginx.conf主配置文件后添加2、修改proxy-1的子配置文件3、修改存储服务器的一些配置4、启动服务测试: 原理: 通过代理服务器进行访问,减小web1和web2的负担 资源是不直接放在web1和web2下的&#x…

node.js搭建代理服务器实现跨域

node.js搭建代理服务器实现跨域 前后端分离,本地前端开发调用接口会有跨域问题,一般有以下3种解决方法: 后端接口打包到本地运行(缺点:每次后端更新都要去测试服下一个更新包,还要在本地搭建java运行环境&…

apache 搭建ip代理服务器

前期准备 windows / LinuxApache 这里就不教如何安装apache了,需要的可以查询如何安装。 apache 配置 找到 httpd.conf 文件,apache的安装目录下 Apache2.4.39\conf\httpd.conf 找到下面几行配置,默认是注释了的,你需要把 # 号…

在CentOS 7上搭建代理服务器(Socks 5)

安装环境配置 1. yum install gcc 2. yum install openldap-devel 3. yum install pam-devel 4. yum install openssl-devel 安装Socks 5 wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz 解压ss5-3.8.9-8.tar.gz tar -xzvf ss5-3.8.9…

10分钟搭建linux代理服务器

介绍 关于搭建代理服务器的方法,我也是刚刚接触,从网上找了一些能够行得通的方法来给大家做个分享: 这里我用的是Tinyproxy作为代理服务软件。这个东西很小,并没有几M。 tinyproxy最大的特点就是小,功能简单&#xff…

用nodejs搭建代理服务器步骤

前端开发者在工作中常常遇到跨域的问题,一般我们遇到跨域问题主要使用以下办法来解决: 1、jsonp 2、cors 3、配置代理服务器。 jsonp不是很灵活,只能发送get请求,不能发送psot请求,而cors虽然可以支持多种请求格式,…