Android 手机屏幕那些事儿
最近公司的 Android 设备准备进行硬件升级,谈及屏幕时,大家对于相关的一些知识点具有不同的认知。因此我搜集了互联网上关于 Android 手机屏幕的相关资料,总结、记录、分享于此。
分辨率
屏幕尺寸
屏幕尺寸指屏幕对角线的长度,单位:英寸
1 英寸 = 2.54 厘米
屏幕比例
屏幕比例为手机屏幕的纵横比(高宽比)
屏幕比例值等于分辨率比例值,即 16 / 9 = 2560 / 1440
当今智能手机主流屏幕比例为 16 : 9 约等于 1.7777777778
也有非主流的:
屏幕比例 代表产品 1 : 1 黑莓 Passport、Motorola ME511 1 : 1 圆屏 Motorola Aura R1 4 : 3 LG Optimus Vu 3 : 2 iPhone4S 15 : 9 魅族 MX3 2 : 1 酷派 9930、坚果 Pro2 屏幕尺寸相同的前提下:屏幕比例越大,屏幕越瘦越高,可视面积越小;反之越矮越胖越大
分辨率
分辨率指屏幕在纵横向上的像素点数,单位 px,1px = 1 个像素点
2560 * 1440 的屏幕即纵向有 2560 个像素点,横向有 1440 个像素点
智能手机历史上的主流标准有:
电脑标准 分辨率 比例 代表产品 HVGA 480 * 320 3 : 2 三星 S5830 WVGA 800 * 480 5 : 3 中兴 V880 qHD 960 * 540 16 : 9 Moto XT910 HD 1280 * 720 16 : 9 小米 2S Full HD 1920 * 1080 16 : 9 Moto X2 WQHD 2560 * 1440 16 : 9 Nexus 6 QFHD 3840 * 2160 16 : 9 Xperia Z5 Premium
像素密度
像素密度指屏幕每英寸上的像素点数
像素密度单位为:dpi 或 ppi,两者基本可以通用
dpi 即 dots per inch,用于打印或印刷领域,为描述打印物上每英寸上点的密度
ppi 即 pixels per inch,用于电脑显示领域,用于描述屏幕上每英寸上像素点的数量
手机屏幕宽度(以英寸为单位) * ppi = 手机屏幕宽度上的像素点数
如 Nexus6 的 2.92(inch) * 493(ppi) = 1440(px)
Android 中常见的像素密度
名称 | 范围 | 对应比例 |
---|---|---|
mdpi | 120dpi - 160dpi | 1 |
hdpi | 160dpi - 240dpi | 1.5 |
xhdpi | 240dpi - 320dpi | 2 |
xxhdpi | 320dpi - 480dpi | 3 |
xxxhdpi | 480dpi - 640dpi | 4 |
屏幕适配
屏幕适配包括:
支持不同的屏幕密度
支持不同的屏幕尺寸
支持不同的屏幕密度
密度无关像素(dp、dip、sp)
dp 是 Density Independent Pixels 的缩写
Android 中,以 160dpi 为基准,1dp = 1px
如果像素密度为 320dpi,此时 1dp = 2px
sp 即 Scale Independent Pixels,与 dp 类似,用于设置字体
如上图所示,屏幕尺寸大小相同,分辨率不同时:
左图:1dp = 1.5px,屏幕宽度为 540px,即 360dp
右图:1dp = 3px,屏幕宽度为 1080px,即 360dp
所以使用 dp 作为单位进行适配,在两种分辨率下显示效果完全相同
支持不同的屏幕尺寸
由上图可以看到,不同尺寸的屏幕:
图一和图二:分辨率相同时,横向上的长度切换为 dp 后是不同的
图一和图三:dpi 相同时,横向上的长度切换为 dp 后仍然不同
即画一条 360 dp 长度的线,在图一上会占满整个宽,在图二或图三只会占 1/2
所以我们需要对不同尺寸的屏幕进行适配,对于尺寸相差较大时应提供不同的布局
适配规则
使用 “wrap_content” 和 “match_parent”
使用 ConstraintLayout
使用尺寸限定符、最小宽度限定符、屏幕方向限定符
使用点 9 图
颜色模式
16 位色、24 位色、32 位色
屏幕上所展示的图片由像素点组成,每一个像素点只能表达一种颜色
所有的颜色都是由红、绿、蓝三种颜色合成的,红绿蓝称为:三基色
色彩深度包括:
色彩深度 颜色数量 名称 1 位 2 种 黑白 8 位 256 种 灰阶 15/16 位 32768/65536 种 高彩 24 位 16677216 种 真彩 30/36/48 位 16677216 种 全彩
24 位色
由纯色到逐渐降低饱和度,红色有 2 ^ 8 = 256 种红色。也称 8 位色,因为用二进制描述需要 00000000 - 11111111,共需 8 位二进制来描述
存储时红色的信息需要 8 位 即 1 个字节来存储
绿色、蓝色一样
三种颜色混合后总共可以得到 2 ^ 8 2 ^ 8 2 ^ 8 = 2 ^ 24 = 16777216 种颜色,即 24 位色
24 位色,又叫真彩色
16 位色
16 位色拥有 2 ^ 16 = 65536 种颜色
红色、蓝色各占 5 位,绿色占 6 位,因为人眼对绿色分辨的色调更精确
即有 32 种红色、32 种蓝色、64 种绿色
某些情况下三种颜色各占 5 位、剩下的 1 位不用,即为 15 位色
32 位色
实际就是 24 位色模式
剩余的 8 位不分配到像素中,这种模式是为了提高数据传输速度
一些特殊情况下,如 DirectX、OpenGL 环境,剩余的 8 位用来描述像素的透明度(Alpha)
屏幕色数
智能手机历史上主流屏幕色数:
6 万色屏幕可以显示 65536 种不同的颜色
1600 万色屏幕可以显示 16777216 种颜色
Android 支持的颜色模式
颜色模式 | 描述 | 一个像素点占用空间 | 备注 |
---|---|---|---|
ARGB8888 | 四通道高精度(32位) | 4 字节 | 加载图片的默认模式,色彩丰富。但占用空间较大 |
ARGB4444 | 四通道低精度(16位) | 2 字节 | 在 Api 13 后被废弃,建议使用 ARGB8888。从 Api 19 开始,使用此种模式会被 ARGB8888 替代 |
RGB565 | 三通道(16位) | 2 字节 | |
Alpha8 | 仅有透明通道(8位) | 1 字节 |
由表可以看出,屏幕默认模式为 RGB565,即为 16 位色模式
我们常用的是 ARGB8888 和 ARGB4444 模式
由于屏幕是不透明的,所以显示在屏幕上的颜色可以认为是没有 Alpha 通道的
Alpha 通道主要用于两种颜色进行混合时使用,如上层颜色和下层颜色叠加时
屏幕材质
目前主流手机屏幕材质分为两种:LCD 和 OLED。两者最大区别为:
LCD 屏幕通过外部光源照亮
OLED 屏幕像素自发光(通过有机材料)
关于 LCD 和 OLED 的详细对比可以参考这篇文章:
为什么 iPhone X 选择用 OLED 屏幕?
LCD 屏幕
屏幕材质 | 相关信息 | 主要使用案例 |
---|---|---|
TFT | 比较老的一种屏幕材质 | Motorola Defy+ |
IPS | 俗称“Super TFT”,实质还是 TFT,显示通透、亮丽,可视角度大 | iPhone 系列 |
SLCD(SuperLCD) | LCD 屏幕的高级进阶,色彩还原真实 | HTC 系列 |
OLED 屏幕
目前主流的 AMOLED 屏幕属于 OLED 屏幕的一个分支,技术掌握在三星手中。
屏幕材质 | 相关信息 | 主要使用案例 |
---|---|---|
AMOLED | 三星第一代 AMOLED 屏幕 | Nokia N86、N8 |
Super AMOLED | 三星第二代 AMOLED 屏幕,色彩饱和度高,显示艳丽。之后还延伸出 Super AMOLED Advanced 和 HD Super AMOLED | 三星盖世系列 |
Super AMOLED PLUS | 三星第三代 AMOLED 屏幕,由 Pentile 排列方式改为传统的 RGB 排列方式 | 三星 I9100 |
参考文档
Android 官方文档:面向多种屏幕的设计
Android屏幕适配全攻略(最权威的官方适配指导)
WikiPedia:显示分辨率列表
DPI和PPI如何换算?:屏幕分辨率那些事儿
16位色、24位色、真彩色、32位色的概念
雷锋科普:主流手机屏幕材质有哪些?
Android 手机屏幕那些事儿相关推荐
- android 使用asm.jar将android手机屏幕投影到电脑上
使用asm.jar将Android手机屏幕投影到电脑 有时候可能需要将手机上的一些操作投影出来,比如一些App Demo的展示等.其实,有专门的硬件设备能干这件事儿,但没必要专门为展示个Demo去花钱 ...
- android分辨率选择,安卓Android手机屏幕壁纸分辨率选择技巧
大家先看看对应的壁纸分辨率: 屏幕分辨率为 480×320 的Android手机,对应的壁纸分辨率为:640x480. 屏幕分辨率为 800×480 的Android手机,对应的壁纸分辨率为:960x ...
- android壁纸和手机屏幕之间要怎么对应,安卓Android手机屏幕壁纸分辨率选择技巧...
安卓Android手机屏幕壁纸分辨率选择技巧 现在使用安卓手机的人好多了,一个好的手机壁纸自然是大家的追求,那么要怎么挑选适合自己安卓手机的手机壁纸呢~登博教程小编来教你挑选吧~ 大家先看看对应的壁纸 ...
- android手机屏幕总是闪烁,手机屏幕闪烁是什么原因
手机屏幕闪烁会严重影响到我们对手机的使用,那么在遇到这种情况的时候我们应该怎么解决呢?下面是小编精心为你整理的手机屏幕闪烁的原因,一起来看看. 手机屏幕闪烁的原因 其实很多时候是由于静电造成的,我们可 ...
- 修复Android手机屏幕的5种简单方法是黑色的
作为Android用户,您是否遇到过以下情况: Android 设备的通知指示灯持续闪烁,但设备没有响应. 手机屏幕经常冻结. Android手机经常重新启动或崩溃. 安卓手机电池消耗得非常快. 您的 ...
- Vysor 在电脑上控制android手机屏幕 镜像
Vysor 在电脑上控制android手机屏幕 镜像 Vysor是一款Chome浏览器的插件,首先你要去装个Google Chrome,接下来简单装一下Vysor Chrome Extensions插 ...
- Android开发——Android手机屏幕适配方案总结
0. 前言 Android的屏幕适配,即使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果,这个问题一直以来都是我们Android开发者不得不面对的问题.本文参考了很多前人的博 ...
- Android手机屏幕RTMP推流工具
Android手机屏幕RTMP推流工具是基于ffmpeg+opencv开发的C++(eclipse.androidstudio)程序,是一款可以将安卓手机屏幕上的任何内容推送到任意一款rtmp服务器上 ...
- Unity3D Android手机屏幕分辨率问题
Android手机屏幕分辨率五花八门,导致开发时不好把握,还好各个引擎对这个屏幕分辨率问题都有较好的处理方式:unity3D 也为我们提供了一个不错的解决方案. 在Unity3D 进行 android ...
最新文章
- 【管理心得之一】不要用“可有可无”的事,挑战他人对这件事的原则和底线...
- salt-api https证书报错解决方法
- 前端知识点总结—-响应式
- eclipse 3.6的VE配置 Visual Editor for eclipse3.6
- vue2.0 练习项目-外卖APP(2)
- delphi if多个条件_屡试不爽!使用策略模式代替多个if条件语句
- 两则爵士鼓的基础练习
- python连接sql数据库_python连接sql server数据库实现增删改查
- 《算法导论》学习笔记——快速排序
- 【个人笔记】OpenCV4 C++ 图像处理与视频分析 03课
- centos-5.5安装vmvare tools
- GraphLite 实现子图匹配
- Linux桌面版横评:九、Mandriva Linux 2007 Spring One
- nginx学习-负载均衡-keepalived高可用-反向代理
- 防止iOS自动识别数字为电话号码
- 三星电视618钜惠火热进行中,6月2日总裁直播惊喜“价”到
- 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程:1、从卡号最后一位数字开始,逆
- 考驾照--驾驶证考试
- NEXTCHIP概述-2
- 点、圆、圆柱类的设计