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

相关文章

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资