当前位置: 首页 > news >正文

【Android】影响屏幕显示效果的一些因素

一、分辨率
画面有多少个像素点 --> 决定画面是否清晰

二、DPI
系统把画面画多大 --> 决定画面里显示的控件或图案的大小
px = dp * (dpi / 160);

三、帧率
一分钟显示多上张图画 --> 决定显示的流畅度

四、码率
画面压缩的狠不狠 --> 决定有没有马赛克,画面糊不糊

举例:
1.分辨率对显示的影响
假设有一块物理屏1920×1080
物理屏幕上有一块SurfaceView ,当SurfaceView 分辨率与物理屏一致时
显示效果如下:

┌──────────────────────────┐ ← 物理屏幕(不变) │ │ │ 🟢 │ ← 图案大小正常 │ │ └──────────────────────────┘

当SurfaceView 分辨率 = 1280×720(变小)时,对应的效果

┌──────────────────────────┐ ← 物理屏幕(还是这么大) │ ┌──────────────┐ │ │ │ 🟢 │ │ ← Surface 变小了 │ └──────────────┘ │ └──────────────────────────┘

为了让surface与物理屏大小一致,则需要进行拉伸,让SurfaceView铺满整个屏幕,此时显示效果

┌──────────────────────────┐ │ │ │ 🟢 │ ← 图案被一起拉大! │ │ └──────────────────────────┘ ↑ 被拉伸铺满

对应肉眼看到的效果:

  • 图案比原来变大了
  • 画面变模糊、有锯齿
  • 一屏能显示的内容变少了

如果分辨率变的更小800×600(更小)
肉眼效果:
图标、文字、画面,全都变大
非常模糊
内容极少

2.DPI对显示的影响
px = dp * (dpi / 160);
DPI越高,同一个dp转换成的物理像素px就越多

假设分辨率等保持不变,只有DPI发生变化
高DPI:

┌─────────────────────┐ │ │ │ 🟢 📝 │ │ │ │ 按钮很大、字大 │ │ 一屏内容很少 │ └─────────────────────┘

低DPI:

┌─────────────────────┐ │ │ │ 🟢📝 🟢📝 🟢📝│ │ │ │ 按钮很小、字很小 │ │ 一屏内容非常多 │ └─────────────────────┘

系统中的设置显示大小就是类似原理,假设原来是160dpi,根据公式,调大显示大小为480dpi的时候,原来1dp对应1px, 现在会变成3px,视觉效果上因为手机屏幕的总物理像素是不变的,一个UI元素占用的像素变为了原来的3倍,那么所有对应的文字、图标、按钮就变大了,一个屏幕上能显示的内容就更少了

3.帧率对显示和触控的影响
在60Hz屏幕下,屏幕每秒刷新60次, 每次需要16.6毫秒(1000ms/60)
在120Hz屏幕下,屏幕每秒刷新120次,每次需要8.3毫秒(1000ms/120)

高帧率时画面位移变小,处理速度变快,看起来更流畅

4.码率对显示的影响
高码率:高码率意味着系统有充足的数据来描述每一帧画面的色彩过滤、光影层次和物体边缘,可以保留丰富的细节
低码率:当码率过低时,系统分配给每一帧图像的数据量严重不足,为了强行压缩体积,会丢失大量细节。

对于静态画面,前后两帧几乎一样,编码器只需要很少的码率就可以让画面看起来很清晰,码率影响较小
对于动态画面,当画面出现剧烈运动时,每一帧都在变化,此时码率如果不足,就会瞬间一片模糊。

http://www.jsqmd.com/news/521886/

相关文章:

  • 算法可扩展性建模与渐进性能分析的技术6
  • INMP441:从MEMS原理到I2S接口,揭秘微型麦克风的音频采集全链路
  • 大数据领域数据标准化的流程优化与创新
  • Winget包管理器故障排查与系统优化指南
  • 拒绝从入门到放弃:自学C语言前的“必修课”——一些重要基础概念的解析
  • Redis从会用到精通,只需掌握这几点!
  • HPatches:计算机视觉评估的局部特征描述符基准
  • WSL2 启动报错“拒绝访问“ E_ACCESSDENIED 完整解决方案
  • 云端调用大模型--以阿里云百炼平台为例
  • openclaw对接高德地图,让你的龙虾为你定制旅游攻略或行程
  • HTML的基本用法
  • Linux命令-mkbootdisk(可建立目前系统的启动盘)
  • 2026年性价比高的厨房大单槽工厂推荐:洗菜盆大单槽/厨房水槽大单槽优质供应商推荐 - 行业平台推荐
  • ORA-12532: TNS:invalid argument 故障解析,Oracle报错远程处理技巧与修复方法分享
  • Ubuntu 20.04下Livox Mid360激光雷达ROS驱动配置全攻略(含常见问题解决)
  • 第八届蓝桥杯的部分题(参照公开网课)
  • 解决Next.js + Sharp在Vercel环境下SVG转PNG的中文乱码问题
  • 发布blazor应用到Linux, 使用nginx作为WebSocket代理
  • 2026年靠谱的Z型输送机厂家推荐:板链输送机/无轴螺旋输送机专业制造厂家推荐 - 行业平台推荐
  • 如何编辑一个网页?
  • vue开发流程
  • 阅读《基于RISC-V架构的嵌入式系统开发》
  • 从3开始制作agent——对话流模型
  • 嵌入式软件测试工具选型与工程实践指南
  • 基于STM32的宿舍多源安防监控系统设计与实现
  • AHB总线读写RAM
  • LibreCAD编译进阶:如何优化Qt Creator配置提升编译效率(附性能对比测试)
  • AI破界:2026消费创新爆发:AI助手一句话下单1.2亿次背后的商业变局
  • 超越CBAM与ECA:YOLOv8引入Shuffle Attention(SA)机制,实现轻量级高效注意力
  • 明文注入隐忧:CVE-2026-1642漏洞深度解析,NGINX全球部署安全预警