【Android系统】虚拟按键 平板设备中重叠的问题
问题背景:做的机器是平板,屏是横屏(分辨率是width > height, 1280*720 这种)。Android 9源码编译的vbmeta, vendor, system下进去,虚拟按键(back,home,app_swith)从左到右重叠,显示在屏幕右侧。要求:平板设备,肯定是要显示在底部,不能显示在右侧。不正常现象如下图:
现象分析,因为我主要是搞驱动的,framework里面很多也看不懂。只能从现象上去分析解决问题,下面是心路历程:1.最开始发现Android界面app图标特别大,后面就发现是DPI (像素密度) 太大导致的。(adb shell wm density 可以设置dpi)2.进行了设置不同dpi尝试,分别a. adb shell wm density 100b. adb shell wm density 160c. adb shell wm density 320发现a虚拟按键显示在屏幕下方b虚拟按键显示在右侧,重叠,显示较小c虚拟按键显示在右侧,重叠,显示较大3.结论:像素密度导致了虚拟按键的位置和大小不同。 (后面发现这个确实在framework中有软件代码)
后面就是找了下代码,百度搜了下虚拟按键代码位置。代码路径:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java里函数 setInitialDisplaySize()然后打了一些log:1. 首先确认了下,底层驱动穿上来的屏幕width和height2. 尝试修改了这段程序里的几个旋转角度 (试了修改mSeascapeRotation, 虚拟按键方向没变化)(修改这个原因是由于adb shell wm density设置时,发现这个变化了,反过来想可能相关)
3.同时发现这个变化了:在虚拟按键显示在底部时,这个变量为false在虚拟按键显示在右侧时,这个变量为true所以我这里直接将它设置为false,后面就显示正常了。 (但是我的机器,触摸屏触摸不到)所以我又遇到一个问题:是TP固件的问题导致底部不能触摸,还是通过修改虚拟按键ui宽度解决这个问题(自己想的肯定是TP固件没调好,但是开发中间阶段,肯定是虚拟按键能使用就行了)(此时adb shell wm density 260, 虚拟按键变大了,可以使用了,但是客户的app是160dpi开发的。。。
【Android系统】虚拟按键 平板设备中重叠的问题相关推荐
- java屏蔽虚拟按键代码_Android 中隐藏虚拟按键的方法实例代码
下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hid ...
- Android适配虚拟按键-亲测华为小米手机有效
Android适配虚拟按键-亲测华为小米手机有效 应用上传华为应用市场,结果被拒,原因是真人测试手机带虚拟按键,结果导致虚拟按键和屏幕某点击事件冲突,一点击就会退出到手机主页.废话不多说,直接上代码. ...
- Android 隐藏虚拟按键
Android 隐藏虚拟按键 领导要求: 横屏播放视频时,不展示虚拟按键: 恢复到竖屏时,展示虚拟按键: /*** NavigationBar 显示与隐藏*/ public class Navigat ...
- 解决了基于Android系统下的藏文输入重叠字的问题。
我已经完美的解决了基于Android系统下的藏文输入重叠字的问题. 首先申明该软件需要付费,否则无法使用.该软件是基于Android智能手机下的应用层软件,当前没有区分手机终端类型及型号,所以会有些手 ...
- 禁用Android底部虚拟按键
Android设备屏幕底部一般都有虚拟按键,上面有 back.home等按钮. 网上搜索到的在代码中通过隐藏导航栏的方法来禁止虚拟按键,例如: View decorView = getWindow() ...
- android 虚拟键 高度,Android获取虚拟按键的高度(适配全面屏)
在开发过程中,假如我们要从底部弹出一个popwindow,这时候我们需要考虑获取实际显示的虚拟键高度. 期望: 全面屏下 1.1 开启全面屏开关-返回0 1.2 关闭全面屏开关-执行非全面屏下处理方式 ...
- android 虚拟按键自定义,如何适配Android底部虚拟按键
前言 本文章只做一个记录,一个备忘,也为了更好的帮助他人,文章参考地址:Android适配底部虚拟按键的方法 问题说明 项目进行中需要透明渐变的状态栏,全屏显示,当然透明渐变好弄,方法有很多,但是如果 ...
- 华为手机和谷歌原生系统虚拟按键遮挡布局问题
很多情况下,例如华为手机和谷歌原生系统只有虚拟按键,这时候假如你们做了特殊处理我们可以将布局绘制到navigationBar里面.当然为了避免这种情况,我们应该讲所有的绘图到在navigationBa ...
- Android系统下在te文件中为指定服务添加sepolicy权限
[正文] 设备在播放视频时有异常,使用Logcat查看日志时发现了如下记录: 04-27 14:01:59.136 2825 2825 E SELinux : avc: denied { find } ...
最新文章
- [svc]磁盘接口与RAID
- SQL Server数据库六种数据移动方法
- Hadoop学习笔记(1) ——菜鸟入门
- python水仙花数_scratch与pythonc++的不同,你了解吗?
- 提高 webpack 构建 Vue 项目的速度
- LeetCode 925. 长按键入(双指针)
- 漫步最优化四十四——基本拟牛顿法
- 前端获取div里面的标签_「HTML」什么是 HTML 中的 div 标签
- LuaStudio 9.27 去10分钟退出暗桩板
- unix操作系统图标大全
- nsight linux,NVIDIA为Nsight Systems增加Vulkan支持
- 杨辉三角形(Python)
- 学会这几点,你会成为一名月薪过万的Java程序员
- 清卡时提示“增值税未申报或未比对”
- 2021-2027全球与中国IPA干燥机市场现状及未来发展趋势
- 【论文导读】- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)
- 水晶报表插件下载地址
- cpu224 stm32源码,西门子224/226PLC源码/stm32源码,西门子 plc运行源代码
- xml中xsd/xsi/xsl/xmlns的区别和联系
- 自然语言处理中N-gram
热门文章
- 计算机上硬盘显示不出来怎么办,加装硬盘不显示怎么办_新硬盘装上去了但是没显示这么解决...
- UVALive 4850 Installations——思维
- SpringCloud-11-解决[NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has bee
- 计算机软硬件基本知识总结,计算机软硬件基础知识.doc
- 0x7fffffff是多少(也就是INT_MAX,首位是 0,其余都是1,f代表1111)
- ecshopnbsp;二次开发nbsp;全集
- 计算机算法可以用自然语言来描述吗,算法可以用自然语言描述吗
- 莱鸟学spss数据分析之第六章---描述性分析
- iOS 最新 APP提交上架流程~(打包 ipa)
- Unity 接入Apple登录