Android 11 裁剪系统显示区域(适配异形屏)

2024-04-28 12:28

本文主要是介绍Android 11 裁剪系统显示区域(适配异形屏),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

概述

     在显示技术中,"OverScan"(超扫描)是一种调整显示图像边界的技术。通常情况下,OverScan 会在显示屏的边缘周围裁剪一小部分图像。这种裁剪是为了确保显示内容在屏幕上的完整可见性,尤其是在老式电视或投影仪等设备上,可能存在图像边缘出现失真或过多噪点的问题。

OverScan 通过裁剪图像边缘,可以隐藏显示器边缘的任何不完美之处,例如边缘上的噪点、失真或黑边。这有助于确保图像在屏幕上的边缘部分看起来整洁且不受干扰,提供更好的观看体验。

在一些情况下,OverScan 可能会在数字信号传输或视频播放过程中引入一些不必要的图像变形或丢失,因此在现代高清电视和显示器上,OverScan 往往是可以调整或关闭的选项。

如何裁剪

  1. Android 系统的 wm overscan
    wm overscan 命令是在 Android 4.2 Jelly Bean 版本中引入的,并且一直存在于后续的 Android 版本中。因此,从 Android 4.2 Jelly Bean 开始,就支持使用这个命令来调整屏幕的 OverScan 设置。
    在 Android 中,“wm overscan” 是一个命令行工具,用于在设备上调整屏幕的 OverScan 设置。OverScan 调整可以在某些情况下用于调整显示的边缘,以确保图像完全填充整个屏幕,或者调整图像边缘以隐藏可能存在的不完美之处。

    使用:

    adb shell wm overscan left,top,right,bottom
    

    这里的 left、top、right 和 bottom 是指要应用的 OverScan 调整的像素数,分别对应屏幕的左边、顶部、右边和底部。
    需要注意的是,使用这个命令可能会对屏幕显示产生意想不到的影响,因此在使用之前请确保了解你的设备支持的功能以及如何正确地使用它。

    实际效果:
    在这里插入图片描述

    wm overscan 300,0,300,0
    在这里插入图片描述

  2. 可惜的是:在 Android 11 中,“wm overscan” 命令已经被弃用,不再建议使用。 一种简单粗暴的改法:

diff --git a/frameworks/base/services/core/java/com/android/server/display/LogicalDisplay.java b/frameworks/base/services/core/java/com/android/server/display/LogicalDisplay.java
index 5cd9b4d7a5..751c42d98d 100644
--- a/frameworks/base/services/core/java/com/android/server/display/LogicalDisplay.java
+++ b/frameworks/base/services/core/java/com/android/server/display/LogicalDisplay.java
@@ -371,7 +371,7 @@ final class LogicalDisplay {// getSafeInsets is fixed at creation time and cannot changereturn deviceInfo.displayCutout.getSafeInsets();} else {
-            return new Rect();
+            return new Rect(0, 0, 1920, 544);//1080 - 536 = 544}}

在这里插入图片描述

参考

Android wm命令
通过 Tasker 实现「wm overscan」命令 [No Root]

这篇关于Android 11 裁剪系统显示区域(适配异形屏)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/943254

相关文章

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络