问题背景:做的机器是平板,屏是横屏(分辨率是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系统】虚拟按键 平板设备中重叠的问题相关推荐

  1. java屏蔽虚拟按键代码_Android 中隐藏虚拟按键的方法实例代码

    下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hid ...

  2. Android适配虚拟按键-亲测华为小米手机有效

    Android适配虚拟按键-亲测华为小米手机有效 应用上传华为应用市场,结果被拒,原因是真人测试手机带虚拟按键,结果导致虚拟按键和屏幕某点击事件冲突,一点击就会退出到手机主页.废话不多说,直接上代码. ...

  3. Android 隐藏虚拟按键

    Android 隐藏虚拟按键 领导要求: 横屏播放视频时,不展示虚拟按键: 恢复到竖屏时,展示虚拟按键: /*** NavigationBar 显示与隐藏*/ public class Navigat ...

  4. 解决了基于Android系统下的藏文输入重叠字的问题。

    我已经完美的解决了基于Android系统下的藏文输入重叠字的问题. 首先申明该软件需要付费,否则无法使用.该软件是基于Android智能手机下的应用层软件,当前没有区分手机终端类型及型号,所以会有些手 ...

  5. 禁用Android底部虚拟按键

    Android设备屏幕底部一般都有虚拟按键,上面有 back.home等按钮. 网上搜索到的在代码中通过隐藏导航栏的方法来禁止虚拟按键,例如: View decorView = getWindow() ...

  6. android 虚拟键 高度,Android获取虚拟按键的高度(适配全面屏)

    在开发过程中,假如我们要从底部弹出一个popwindow,这时候我们需要考虑获取实际显示的虚拟键高度. 期望: 全面屏下 1.1 开启全面屏开关-返回0 1.2 关闭全面屏开关-执行非全面屏下处理方式 ...

  7. android 虚拟按键自定义,如何适配Android底部虚拟按键

    前言 本文章只做一个记录,一个备忘,也为了更好的帮助他人,文章参考地址:Android适配底部虚拟按键的方法 问题说明 项目进行中需要透明渐变的状态栏,全屏显示,当然透明渐变好弄,方法有很多,但是如果 ...

  8. 华为手机和谷歌原生系统虚拟按键遮挡布局问题

    很多情况下,例如华为手机和谷歌原生系统只有虚拟按键,这时候假如你们做了特殊处理我们可以将布局绘制到navigationBar里面.当然为了避免这种情况,我们应该讲所有的绘图到在navigationBa ...

  9. Android系统下在te文件中为指定服务添加sepolicy权限

    [正文] 设备在播放视频时有异常,使用Logcat查看日志时发现了如下记录: 04-27 14:01:59.136 2825 2825 E SELinux : avc: denied { find } ...

最新文章

  1. [svc]磁盘接口与RAID
  2. SQL Server数据库六种数据移动方法
  3. Hadoop学习笔记(1) ——菜鸟入门
  4. python水仙花数_scratch与pythonc++的不同,你了解吗?
  5. 提高 webpack 构建 Vue 项目的速度
  6. LeetCode 925. 长按键入(双指针)
  7. 漫步最优化四十四——基本拟牛顿法
  8. 前端获取div里面的标签_「HTML」什么是 HTML 中的 div 标签
  9. LuaStudio 9.27 去10分钟退出暗桩板
  10. unix操作系统图标大全
  11. nsight linux,NVIDIA为Nsight Systems增加Vulkan支持
  12. 杨辉三角形(Python)
  13. 学会这几点,你会成为一名月薪过万的Java程序员
  14. 清卡时提示“增值税未申报或未比对”
  15. 2021-2027全球与中国IPA干燥机市场现状及未来发展趋势
  16. 【论文导读】- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)
  17. 水晶报表插件下载地址
  18. cpu224 stm32源码,西门子224/226PLC源码/stm32源码,西门子 plc运行源代码
  19. xml中xsd/xsi/xsl/xmlns的区别和联系
  20. 自然语言处理中N-gram

热门文章

  1. 计算机上硬盘显示不出来怎么办,加装硬盘不显示怎么办_新硬盘装上去了但是没显示这么解决...
  2. UVALive 4850 Installations——思维
  3. SpringCloud-11-解决[NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has bee
  4. 计算机软硬件基本知识总结,计算机软硬件基础知识.doc
  5. 0x7fffffff是多少(也就是INT_MAX,首位是 0,其余都是1,f代表1111)
  6. ecshopnbsp;二次开发nbsp;全集
  7. 计算机算法可以用自然语言来描述吗,算法可以用自然语言描述吗
  8. 莱鸟学spss数据分析之第六章---描述性分析
  9. iOS 最新 APP提交上架流程~(打包 ipa)
  10. Unity 接入Apple登录