日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

發(fā)布時(shí)間:2024/9/27 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android mtk 按键,Android 4.0 虚拟按键、手机模式、平板模式(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

nullem;text-align:left">平臺(tái)信息:

內(nèi)核:linux2.6/linux3.0

系統(tǒng):android/android4.0

平臺(tái):S5PV310(samsungExynos4210/4412)

作者:xubin341719(歡迎轉(zhuǎn)載,請注明作者)

&nBSP; ? 三星新拿回來來的BSP,編譯后沒有“返回、最近打開應(yīng)用、home”三個(gè)虛擬鍵。我們硬件在設(shè)計(jì)的時(shí)候也沒有設(shè)定相應(yīng)的物理按鍵,平時(shí)調(diào)試程序的時(shí)候比較麻煩。怎么把這三個(gè)按鍵顯示出來??下面我們來說明。

同時(shí)在開始分析問前我引入另外兩個(gè)問題:

table 模式、phone模式選擇;

LCD_density參數(shù)設(shè)定,來決定圖標(biāo)密度大小。

一、引入問題:

1、 手機(jī)模式、平板模式

android4.0手機(jī)模式、平板模式兩種情況 界面的主體布局不太一樣,如下圖所示。

2、lcd_density

ro.sf.lcd_density=240 和ro.sf.lcd_density=160兩種不同的現(xiàn)象,很明顯說明這個(gè)參數(shù)的做用。后面我們遇到一個(gè)問題要從這里說明。

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 is240=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、參考網(wǎng)友的說法:

將\Frameworks\base\core\res\res\values\config.xml中的下面屬性的值改為true;false

狀態(tài):模式:phone

參數(shù):config_showNavigationBar=true

出現(xiàn)以下情況:

(1)、虛擬按鍵邊上那個(gè)黑框已經(jīng)出來;

(2)、看不到三個(gè)按鍵圖標(biāo);

(3)、點(diǎn)擊邊緣時(shí)會(huì)有顏色變化,橫屏是“返回”鍵,豎屏?xí)r點(diǎn)擊為“最近打開程序”;感覺那個(gè)按鍵被放大了一樣。 由上面分析,這種現(xiàn)象是布局出問題,我們LCD分辨率為1280*800,其實(shí)三個(gè)按鍵出來了,只不過圖標(biāo)顯示太大,所以我們看不到。同時(shí)在這里我們引入前面我們提到的兩個(gè)問題:(1)、table 模式、phone模式選擇;(2)lcd_density參數(shù)設(shè)定,來決定圖標(biāo)密度大小。

很明顯的我們可以看出現(xiàn)在編譯的時(shí)phone模式、那個(gè)圖標(biāo)為什么看不到, lcd-_density設(shè)定的圖標(biāo)太大。

2、問題分析

打開機(jī)器,在串口終端或者是adb shell中:

cd/system

catdefault.prop

我們可以看到:

ro.build.characteristics=phone

這就是我們所說的table、phone參數(shù)設(shè)定,不同的模式在這里決定的。查找這些參數(shù)在那里設(shè)定,最終找到:

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

ifeq ($(BOARD_USES_HIGH_RESOLUTION_LCD),true) //(1)、如果滿足條件,就設(shè)為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)、滿足條件就設(shè)為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設(shè)定。

PRODUCT_AAPT_CONFIG:= normalhdpi

Endif

(1)、如果滿足條件,就設(shè)為table

BOARD_USES_HIGH_RESOLUTION_LCD = true,就設(shè)定為table模式。

(2)、滿足條件就設(shè)為phone模式;

BOARD_USES_HIGH_RESOLUTION_LCD = flash,就設(shè)定為phone模式

(3)、lcd_density設(shè)定。

在PRODUCT_CHARACTERISTICS := phone時(shí),lcd_density設(shè)置為240。

現(xiàn)在我們要用table模式,所以我們要把BOARD_USES_HIGH_RESOLUTION_LCD這個(gè)參數(shù)設(shè)定為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還原成默認(rèn)值

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

false

狀態(tài)

模式:table

參數(shù):config_showNavigationBar=false

編譯,平板模式三個(gè)虛擬按鍵就可以出來了。我們的問題解決了。設(shè)為平板模式;三個(gè)虛擬按鍵出現(xiàn)。

三、phone模式下為什么只有一個(gè)黑框?

問題解決了,但是我們還有一個(gè)疑問,那就是按網(wǎng)友那種方法改動(dòng)后,為什么沒有出現(xiàn)我們理想的效果呢?回顧“1、參考網(wǎng)友的說法:”更改后,個(gè)別鍵有做用,但是不能看到三個(gè)按鍵。

分析代碼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, "xubintestmNavigationBarHeight= " + mNavigationBarHeight

???"mNavigationBarWidth=" +mNavigationBarWidth);

打印值為:

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

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

打印出來的信息也沒什么問題,相對(duì)的而已文件也正確。這就回到我們開始提到那個(gè)lcd_density參數(shù)問題了,上面可以很明顯的看到,當(dāng)lcd_density值發(fā)生小的改變后,圖標(biāo)大小有很大的變化,再個(gè)來說我們LCD的分辨率太高,1280X800的,所以把那三人圖標(biāo)放大大,所以我們看到上面那種現(xiàn)象。

總結(jié)

以上是生活随笔為你收集整理的android mtk 按键,Android 4.0 虚拟按键、手机模式、平板模式(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。