关键词:android 4.0

手机模式(phone) 平板模式(table) 虚拟按键

lcd_density

平台信息:

内核:linux2.6/linux3.0

系统:android/android4.0 平台:S5PV310(samsungexynos4210/4412)

三星新拿回来来的BSP,编译后没有“返回、最近打开应用、home”三个虚拟键。我们硬件在设计的时候也没有设定相应的物理按键,平时调试程序的时候比较麻烦。怎么把这三个按键显示出来??下面我们来说明。

同时在开始分析问前我引入另外两个问题:

table

模式、phone模式选择;

lcd_density参数设定,来决定图标密度大小。

一、引入问题:

1、 手机模式、平板模式

android4.0手机模式、平板模式两种情况

界面的主体布局不太一样,如下图所示。

2、lcd_density

ro.sf.lcd_density=240

和ro.sf.lcd_density=160两种不同的现象,很明显说明这个参数的做用。后面我们遇到一个问题要从这里说明。

To change the density of the screen change /system/build.prop

ro.sf.lcd_density=240

high-density, at the right of the picture, comes by default in the mephisto's roms.

ro.sf.lcd_density=180

low density, at the left of the picture

(This means that the number of pixels per inch is 240=800/3.5"

3.5" is the screen of the H1 and 800×480 display resolution).

So you can pick any number between 240 and 180 - personally I use 220.

You can do this using root explorer apk for instance:

二、问题分析

1、参考网友的说法:

将\frameworks\base\core\res\res\values\config.xml中的下面属性的值改为true;

<boolname="config_showNavigationBar">falsebool>

状态:

模式:phone

参数:config_showNavigationBar=true

出现以下情况:

(1)、虚拟按键边上那个黑框已经出来;(2)、看不到三个按键图标;(3)、点击边缘时会有颜色变化,横屏是“返回”键,竖屏时点击为“最近打开程序”;感觉那个按键被放大了一样。由上面分析,这种现象是布局出问题,我们LCD分辨率为1280*800,其实三个按键出来了,只不过图标显示太大,所以我们看不到。同时在这里我们引入前面我们提到的两个问题:(1)、table

模式、phone模式选择;(2)lcd_density参数设定,来决定图标密度大小。

很明显的我们可以看出现在编译的时phone模式、那个图标为什么看不到, lcd­_density设定的图标太大。

2、问题分析

打开机器,在串口终端或者是adb shell中:

cd/system

catdefault.prop

我们可以看到:

ro.build.characteristics=phone

这就是我们所说的table、phone参数设定,不同的模式在这里决定的。查找这些参数在那里设定,最终找到:

android_ramos_4412_02/android/device/samsung/smdk4x12/device.mk

ifeq ($(BOARD_USES_HIGH_RESOLUTION_LCD),true) //(1)、如果满足条件,就设为table模式;

PRODUCT_CHARACTERISTICS :=tablet

PRODUCT_COPY_FILES += \ frameworks/base/data/etc/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml

$(call inherit-product, frameworks/base/build/tablet-dalvik-heap.mk)

else

PRODUCT_CHARACTERISTICS :=phone//(2)、满足条件就设为phone模式;

PRODUCT_COPY_FILES += \

frameworks/base/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml

$(call inherit-product, frameworks/base/build/phone-hdpi-512-dalvik-heap.mk) PRODUCT_PROPERTY_OVERRIDES += \

ro.sf.lcd_density=240//(3)、lcd_density设定。

PRODUCT_AAPT_CONFIG :=normalhdpi

Endif

(1)、如果满足条件,就设为table

BOARD_USES_HIGH_RESOLUTION_LCD = true,就设定为table模式。

(2)、满足条件就设为phone模式;

BOARD_USES_HIGH_RESOLUTION_LCD = flash,就设定为phone模式

(3)、lcd_density设定。

在PRODUCT_CHARACTERISTICS := phone时,lcd_density设置为240。

现在我们要用table模式,所以我们要把BOARD_USES_HIGH_RESOLUTION_LCD这个参数设定为true。

android_ramos_4412_02/android/device/samsung/smdk4x12/BoardConfig.mk

OARD_USES_HIGH_RESOLUTION_LCD:=true

把BOARD_USES_HIGH_RESOLUTION_LCD选为ture就可以编译成平板模式。

(4)、把config_showNavigationBar还原成默认值

将\frameworks\base\core\res\res\values\config.xml

<boolnameboolname="config_showNavigationBar">falsebool>

状态

模式:table

参数:config_showNavigationBar=false

编译,平板模式三个虚拟按键就可以出来了。我们的问题解决了。设为平板模式;三个虚拟按键出现。

三、phone模式下为什么只有一个黑框?

问题解决了,但是我们还有一个疑问,那就是按网友那种方法改动后,为什么没有出现我们理想的效果呢?回顾“1、参考网友的说法:”更改后,个别键有做用,但是不能看到三个按键。

分析代码android/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

mNavigationBarHeight=mHasNavigationBar? mContext.getResources().getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_height) : 0;mNavigationBarWidth=mHasNavigationBar?mContext.getResources().getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_width) : 0;

Log.v(TAG, "xubin testmNavigationBarHeight= " + mNavigationBarHeight

 " mNavigationBarWidth=" +mNavigationBarWidth);

<spanstyle="font-family:Arial, Helvetica, sans-serif;WHITE-SPACE: normal">打印值为:span>

V/WindowManager( 1250): xubintestmNavigationBarHeight=72mNavigationBarWidth=63

V/WindowManager(1250): xubin test mNavigationBarHeight=72mNavigationBarWidth=63

打印出来的信息也没什么问题,相对的而已文件也正确。这就回到我们开始提到那个lcd_density参数问题了,上面可以很明显的看到,当lcd_density值发生小的改变后,图标大小有很大的变化,再个来说我们LCD的分辨率太高,1280X800的,所以把那三人图标放大大,所以我们看到上面那种现象。

安卓平板隐藏虚拟按键_Android 4.0 虚拟按键、手机模式、平板模式相关推荐

  1. FineUI(专业版)v3.0.0 发布,手机、平板和桌面全支持!

    FineUI(专业版)v3.0.0 已经正式发布,全面支持手机.平板和桌面! 自 2008 年 4 月发布第一个版本,我们持续更新了 126 个版本,拥有 16000 多位注册用户,1300 多位捐赠 ...

  2. 玩王者荣耀android平板,2018适合玩王者荣耀的高性价比手机与平板电脑推荐

    原标题:2018适合玩王者荣耀的高性价比手机与平板电脑推荐 虽说去年<绝地求生>手游开始火爆起来了,但由于尚未完全成熟,很多新模式和玩法尚未成型.加上手机端体验不如电脑端好.加上最近王者荣 ...

  3. 平板电脑安装软件_看港澳节目,手机、平板、电脑,无需安装,一步搞定!

    聪聪的那年微信公众号正式启用,聪聪将在<微信公众号>.<今日头条>.<西瓜视频>同步更新精彩软件,希望大家能关注聪聪,多给予支持关注,关注:聪聪的那年即可获取关注礼 ...

  4. 荣耀平板6鸿蒙os,华为发布多款4G手机及平板,荣耀多款老机型将适配鸿蒙系统...

    华为正式发布鸿蒙系统OS2,同时也发布了多款4G手机,包括Mate40 Pro.Mate40E.Nova8Pro.Mate X2它们都预装鸿蒙系统OS2,价格上相比5G版本便宜300至400元. 除了 ...

  5. android mtk 按键,Android 4.0 虚拟按键、手机模式、平板模式(转)

    nullem;text-align:left">平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0 平台:S5PV310(samsungE ...

  6. java 隐藏虚拟键_Android 对底部虚拟键的显示和隐藏

    场景:播放全屏视频或则游戏界面会隐藏虚拟按键,其他界面会显示虚拟按键. 1.隐藏底部虚拟按钮: /** * 隐藏虚拟按键 */ public void goneSystemUi(){ //隐藏虚拟按键 ...

  7. 安卓仿苹果音量调节_Android 模仿苹果虚拟悬浮按钮(自动靠边、可浮现任何界面上)...

    public classFloatViewService extends Service {private static final String TAG = "FloatViewServi ...

  8. 老手机能升级华为鸿蒙,华为正式发布鸿蒙2.0!实现手机、平板等多平台共用一套代码!...

    1. 华为发布HarmonyOS 2,向万物互联时代迈进 华为消费者业务软件部总裁王成录在HarmonyOS2及华为全场景新品发布会上表示,鸿蒙操作系统是一个全栈解耦的架构,一套代码可以在手机上使用, ...

  9. html5平板电脑,Html5添加支持桌面、移动触摸手机和平板电脑的Lightbox插件教程

    一.使用方法 首先在 标签之前或标签中引入jquery和swipebox js文件. 在标签中引入swipebox.css文件. 二.Html结构 三.调用插件 ;( function( $ ) { ...

最新文章

  1. 技术的顶点,是普惠人类还是超越人类
  2. CSS 负边距自适应布局
  3. 新版pycharm,亮瞎我的狗眼
  4. whatlies包 | 简单玩转词向量可视化
  5. geant4运行例子_Geant4--一次编译,运行多个Run,极大提升模拟效率
  6. (c语言)判断一个正整数是否是回文数
  7. CocoStudio创建动画帧
  8. 处理Windows快捷键占用冲突
  9. selenium自动化测试01
  10. 软件测试记录包括哪些,bug记录里通常包括哪些内容?
  11. win10 计算机描述,怎么设置win10以安全描述符定义语言(SDDL)语法表示的计算机访问权限...
  12. smtp协议与pop3协议
  13. photoshop-photoshop记录
  14. 2022-08-13 LZO使用方法
  15. 极客时间计算机组成原理学习笔记
  16. android默认wifi密码,Android 修改WiFi热点的默认SSID和密码
  17. SAP CO11N/CO15工单报工BADI增强出口(保存前、保存后、数据验证)
  18. 百度首次发布3D地图 杨洋导航语音完整版上线
  19. pdu串短信格式说明
  20. 史上前端面试最全知识点

热门文章

  1. python ttk组件_Python ---(一)Tkinter窗口组件:Label
  2. 您要的FPGA开发软件都在这里
  3. 华为交换机S5720-EI堆叠
  4. 正点原子开发板STM32F407ZG-基于AD7606进行八路数据采集
  5. python应用内部审计_基于大数据技术提升内部审计质量的路径
  6. 互联网舆情系统的架构实践
  7. 启动tomcat卡在“信息: Destroying ProtocolHandler”
  8. Android 自定义键盘 随机键盘
  9. GB28181公网语音对讲
  10. 会计准则中借方与贷方如何理解分析