android鍵盤值
『壹』 【轉】Android軟鍵盤的全面解析
軟鍵盤其實是一個Dialog
InputMethodService為我們的輸入法創建了一個Dialog,並且對某些參數進行了設置,使之能夠在底部或者全屏顯示。當我們點擊輸入框時,系統會對當前的主窗口進行調整,以便留出相應的空間來顯示該Dialog在底部,或者全屏。
其實這段話我們經常在各種軟鍵盤博客所看到,但是大家並不知道Android是怎麼為我們創建的這個Dialog,所以我先帶大家來看下軟鍵盤生成這塊的源碼,了解軟鍵盤的生成流程。
我們先來看一下InputMethodService的繼承關系:
因為InputMethodService屬於服務,接下來我們先看一下服務的入口onCreate()方法:
通過上面的分析,我們懷疑這里的SoftInputWindow是軟鍵盤彈出創建的Dialog對象,下面我們看下SoftInputWindow的源碼。
看到這里大家就能明白了,為什麼說軟鍵盤就是一個Dialog。而且這里通過設置Gravity.BOTTOM來控制當前Dialog在Window中的位置。
在Android中,可以通過給Activity設置 windowSoftInputMode 這個屬性來控制軟鍵盤與Activity的主窗口的交互方式。
Activity 的主窗口與包含屏幕軟鍵盤的窗口的交互方式,該屬性的設置影響兩個方面:
該設置必須是下面所列的值之一,或者是一個「state…」值加上一個「adjust…」值的組合,在任一組中設置多個值(例如,多個「state…」值)都會產生未定義結果。各值之間使用垂直條 (|) 分隔。
下面將通過例子來介紹 adjustNoting 、 adjustUnspecified 、 adjustResize 、 adjustPan 在軟鍵盤彈出的區別:
非滾動布局xml
點擊最下面的EditText12
滾動布局xml
通過上面的例子,我們可以完全理解adjust系列的各個參數的作用。而軟鍵盤的顯示和隱藏這裡面需要並不多,而且內容並不算復雜,大家回去自己嘗試下就可以。
在日常開發中,如果需要將軟鍵盤的Enter鍵更改為其他鍵,可以設置其 android:imeOptions 屬性,這個屬性可以控制軟鍵盤的Enter鍵,以及橫屏情況下的軟鍵盤顯示狀態。
該設置必須是下面所列的值之一,或者是一個「action…」值加上一個「flag…」值的組合,在action…組中設置多個值(例如,多個「action…」值)都會產生未定義結果,而flag….可以設置多個。各值之間使用垂直條 (|) 分隔
控制軟鍵盤上的Enter鍵
橫屏下控制軟鍵盤
總結一下:
這里大部分的屬性,已經介紹完畢,如果英語好的同學,可以去看下官方文檔,可以更好的理解,並且本文以搜狗輸入法為實踐,可能其他的輸入法與其顯示的不同,但是功能應該都是一樣的。
而如果要在橫屏狀態不希望軟鍵盤全屏顯示最好是將flagNoFullscreen和flagNoExtractUi結合使用,這樣體驗上會更好
android:imeOptions=」flagNoFullscreen|flagNoExtractUi」
Android官網的Api
如果需要監聽軟鍵盤的右下角的按鍵,需要為EditText設置setOnEditorActionListener()監聽:
上面的方式,只是展示了如何監聽各個按鍵的方法,如果需要消費事件,則需要return true。
(1)第一次寫這么長的博客,感覺會有一些不足,各位看官如果有不合理的地方,或者有誤的地方請直接指出。
(2)本來想整理成一個Demo的,後來簡單看來下,該有的幾乎都貼出來了,有需要的可以按需復制就可以。
(3)寫完這篇博客之後,感覺博客干貨還是不多,所以定位這篇文章算是總結性質加上實際案例性質的博客。
(4)Android軟鍵盤的總結就差不多到這里,希望各位看官,如果看到這里有收獲,就點點贊,灌灌水,頂一波,這樣博主才有寫下去的動力。
(5)感謝小輝同學的校驗,調整了文章中不通順的地方。
1.徹底搞定Android開發中軟鍵盤的常見問題
http://blog.csdn.net/mynameishuangshuai/article/details/51567357
2.Android UI(EditText)詳解
http://blog.csdn.net/qq_28057577/article/details/51919965?locationNum=12&fps=1
3.微信軟鍵盤布局閃動問題
https://blog.dreamtobe.cn/2015/09/01/keyboard-panel-switch/
『貳』 關於Android中的軟鍵盤
原文鏈接:徹底搞定Android開發中軟鍵盤的常見問題
軟體盤的本質是什麼?軟鍵盤其實是一個Dialog。
InputMethodService為我們的輸入法創建了一個Dialog,並且將該Dialog的Window的某些參數(如Gravity)進行了設置,使之能夠在底部或者全屏顯示。當我們點擊輸入框時,系統對活動主窗口進行調整,從而為輸入法騰出相應的空間,然後將該Dialog顯示在底部,或者全屏顯示。
軟鍵盤顯示的調整
Android 定義了一個屬性,名字為windowSoftInputMode, 這個屬性用於設置Activity主窗口與軟鍵盤的交互模式,用於避免軟鍵盤遮擋內容的問題。我們可以在AndroidManifet.xml中對Activity進行設置。如:android:windowSoftInputMode=」stateUnchanged|adjustPan」。 該屬性可選的值有兩部分,一部分為軟鍵盤的狀態控制,控制軟鍵盤是隱藏還是顯示,另一部分是Activity窗口的調整,以便騰出空間展示軟鍵盤。 android:windowSoftInputMode的屬性設置必須是下面中的一個值,或一個」state」值加一個」adjust」值的組合,各個值之間用 | 分開。
stateUnspecified-未指定狀態 :當我們沒有設置android:windowSoftInputMode屬性的時候,軟體默認採用的就是這種交互方式,系統會根據界面採取相應的軟鍵盤的顯示模式。
stateUnchanged-不改變狀態 :當前界面的軟鍵盤狀態,取決於上一個界面的軟鍵盤狀態,無論是隱藏還是顯示。
stateHidden-隱藏狀態 :當設置該狀態時,軟鍵盤總是被隱藏,不管是否有輸入的需求。
stateAlwaysHidden-總是隱藏狀態 :當設置該狀態時,軟鍵盤總是被隱藏,和stateHidden不同的是,當我們跳轉到下個界面,如果下個頁面的軟鍵盤是顯示的,而我們再次回來的時候,軟鍵盤就會隱藏起來。
stateVisible-可見狀態 :當設置為這個狀態時,軟鍵盤總是可見的,即使在界面上沒有輸入框的情況下也可以強制彈出來出來。
stateAlwaysVisible-總是顯示狀態 :當設置為這個狀態時,軟鍵盤總是可見的,和stateVisible不同的是,當我們跳轉到下個界面,如果下個頁面軟鍵盤是隱藏的,而我們再次回來的時候,軟鍵盤就會顯示出來。
adjustUnspecified-未指定模式 :設置軟鍵盤與軟體的顯示內容之間的顯示關系。當你跟我們沒有設置這個值的時候,這個選項也是默認的設置模式。在這中情況下,系統會根據界面選擇不同的模式。
adjustResize-調整模式 :該模式下窗口總是調整屏幕的大小用以保證軟鍵盤的顯示空間;這個選項不能和adjustPan同時使用,如果這兩個屬性都沒有被設置, 系統會根據窗口中的布局自動選擇其中一個 。
adjustPan-默認模式 :該模式下通過不會調整來保證軟鍵盤的空間,而是採取了另外一種策略,系統會通過布局的移動,來保證用戶要進行輸入的輸入框肯定在用戶的視野范圍裡面,從而讓用戶可以看到自己輸入的內容。
案例
沒有滾動布局xml
對於沒有滾動控制項的布局來說,adjustPan就是默認的設置,比如我們案例應用中的文本輸入8,上面的文本輸入框123和按鈕都會被頂上去,且頁面布局不可以滾動。
對於沒有滾動控制項的布局來說,整個布局會網上偏移(包括標題等)以保證輸入框的可見。如果有滾動控制項,那麼就是內容網上偏移,標題不會動,還可以通關滾動來查看被頂上去的內容,而這點是不可滾動的布局所不具備的
有滾動布局xml
對於有滾動控制項的布局,則是採用的adjustResize方式,比如我們案例應用中的文本輸入8,上面的文本輸入框123和按鈕都會被頂上去, 可以通過滾動來查看被頂上去的內容。
** 根據這一原理,我們就可以把開發中遇到的軟鍵盤遮擋頁面的問題,利用ScrollView當做根布局,讓系統採用adjustResize模式,很好地解決這一問題。**
自動彈出軟鍵盤
有時候需要一進入Activity後就自動彈出軟鍵盤,可以通過設置一個時間函數來實現,具體寫法如下:
方法一:
方法二:
有時進入Activity後不希望系統自動彈出軟鍵盤,我們可以按照下面的方法來實現:
方法一:
在AndroidMainfest.xml中選擇那個activity,設置windowSoftInputMode屬性為adjustUnspecified|stateHidden
方法二:
讓EditText失去焦點,使用EditText的clearFocus方法
方法三:
強制隱藏Android輸入法窗口
方法四:
EditText始終不彈出軟體鍵盤
EditText設置ScrollView壓縮背景圖片解決辦法
在你的Activity里加上
有時希望根據條件動態關閉軟鍵盤,我們可以使用InputMethodManager類,按照下面的方法來實現:
方法一:
方法二:
強制隱藏軟鍵盤,這個方法倒是很實用。
方法三:
方法四:
在onclick事件下.以下方法可行.(如果是EditText失去焦點/得到焦點,沒有效果)
InputMethodManager的具體用法可以參考下面的鏈接: http://www.apihome.cn/api/android/InputMethodManager.html
使用android:imeOptinos可對Android自帶的軟鍵盤進行一些界面上的設置:
android:imeOptions="flagNoExtractUi" //使軟鍵盤不全屏顯示,只佔用一部分屏幕
同時,這個屬性還能控制項軟鍵盤右下角按鍵的顯示內容,默認情況下為回車鍵
android:imeOptions="actionNone" //輸入框右側不帶任何提示 android:imeOptions="actionGo" //右下角按鍵內容為'開始' android:imeOptions="actionSearch" //右下角按鍵為放大鏡圖片,搜索 android:imeOptions="actionSend" //右下角按鍵內容為'發送' android:imeOptions="actionNext" //右下角按鍵內容為'下一步' android:imeOptions="actionDone" //右下角按鍵內容為'完成'
同時,可能EditText添加相應的監聽器,捕捉用戶點擊了軟鍵盤右下角按鈕的監聽事件,以便進行處理。
開發中有個需求是將頁面底部的一個按鈕頂起,但是開發時發現Android5.0以後的版本設置了adjustResize屬性後無法成功頂起。糾結了好久,最後在stackoverflow找到解決方案,那就是在根布局上加上fitsSystemWindow=」true」即可。
這里的fitsSystemWindow具體的作用就是你的**contentview是否忽略actionbar,title,屏幕的底部虛擬按鍵,將整個屏幕當作可用的空間。 **
正常情況,contentview可用的空間是去除了actionbar,title,底部按鍵的空間後剩餘的可用區域;這個屬性設置為true,則忽略,false則不忽略
在edittext上加入Android:imeOptions=」actionSearch」這個屬性沒響應,最後發現在2.3及以上版本不起作用,解決方案:加上
因為輸入法鍵盤右下角默認的回車鍵本來就是換行用的,當設置單行後,回車換行就失去作用了,這樣就可以設置為搜索、發送、go等等。
『叄』 Android自定義軟鍵盤
Android自定義鍵盤的使用
1、新建一個xml文件夾放在res目錄下面,然後新建xml文件:money_keyboard.xml
2、然後在XML文件中添加按鈕布局,這個布局就是鍵盤的樣子了
3 屬性介紹:
Keyboard:
存儲鍵盤以及按鍵相關信息。
android:horizontalGap
按鍵之間默認的水平間距。
android:verticalGap
按鍵之間默認的垂直間距。
android:keyHeight
按鍵的默認高度,以像素或顯示高度的百分比表示。
android:keyWidth:
按鍵的默認寬度,以像素或顯示寬度的百分比表示。
Row:
為包含按鍵的容器。
Key:
用於描述鍵盤中單個鍵的位置和特性。
android:codes
該鍵輸出的unicode值。
android:codes 官網介紹是說這個是該鍵的unicode 值或者逗號分隔值,當然我們也可以設置成我們想要的值,在源碼中提供了幾個特定的值
對照表:
android:isRepeatable
這個屬性如果設置為true,那麼當長按該鍵時就會重復接受到該鍵上的動作,在 刪除鍵鍵 和 空格鍵 上通常設為true。
android:keyLabel
顯示在按鍵上的文字。
android:keyIcon 與 keyLabel
是二選一關系,它會代替文字以圖標的形式顯示在鍵上。
android:keyWidth="33.33333%p"
每一個按鈕的寬度,可以設置百分比
android:keyHeight="10%p"
每一個按鈕高度,可以設置百分比
KeyboardView是一個渲染虛擬鍵盤的View。 它處理鍵的渲染和檢測按鍵和觸摸動作。
顯然我們需要KeyboardView來對Keyboard里的數據進行渲染並呈現給我們以及相關的點擊事件做處理。 1)//設置keyboard與KeyboardView相關聯的方法。
public void setKeyboard(Keyboard keyboard)
2)//設置虛擬鍵盤事件的監聽,此方法必須設置,不然會報錯。
public void setOnKeyboardActionListener(OnKeyboardActionListener listener) 步驟上呢,做完第一步的關聯,並設置第二步的事件,調用KeyboardView.setVisible(true);鍵盤就可以顯示出來了, 是不是很簡單。不過到這里還沒有結束哦,接下來我們為了使用上的便利要進行相應的封裝。 封裝 這里我們通過繼承EditText來對Keyboard與KeyboardView進行封裝。
attr.xml文件,這里我們需要通過一個xml類型的自定義屬性引入我們的鍵盤描述文件。
1、新建一個類,我取名叫KeyUtils然後在裡面新建三個屬性。KeyBoard用處可大了,他才是本體,可以通過設置他來切換鍵盤。
2、構造函數,初始下三個參數。
3、先說下預覽圖吧,就是效果圖上的預覽圖,需要預覽圖的話的將setPreviewEnabled設置為true,不過還得在布局文件中的android.inputmethodservice.KeyboardView標簽對立面設置預覽布局。否則,不會有字。至於設置的布局,一個TextView就好了~
onPress: 按下觸發。
onRelease:松開觸發。
onKey : 松開觸發,在OnRelease之前觸發。
swipeLeft : 左滑動,其他同理。哈哈~就這么懶。
onText :需要在 鍵盤xml,也就是我此時的number.xml裡面中key標簽對里添加一個
『肆』 Android 鍵盤快捷鍵有哪些
基本代碼快捷鍵操作
*#*#4636#*#* — 顯示手機信息、電池信息、電池記錄、使用統計數據、WiFi 信息
*#*#7780#*#* –重設為原廠設定,不會刪除預設程序,及 SD 卡檔案
*2767*3855# –重設為原廠設定,會刪除 SD 卡所有檔案
*#*#34971539#*#* –顯示相機相機韌體版本,或更新相機韌體
*#*#7594#*#* –當長按關機按鈕時,會出現一個切換手機模式的窗口,包括: 靜音模式、飛航模式及關機,你可以用以上代碼,直接變成關機按鈕
*#*#273283*255*663282*#*#* –開啟一個能讓你備份媒體文件的地方,例如相片、聲音及影片等
*#*#197328640#*#* –啟動服務模式,可以測試手機部分設置及更改設定
WLAN、 GPS 及藍牙測試的代碼
*#*#232339#*#* 或 *#*#526#*#* 或 *#*#528#*#* – WLAN 測試
*#*#232338#*#* – 顯示 WiFi MAC 地址
*#*#1472365#*#* – GPS 測試
*#*#1575#*#* – 其它 GPS 測試
*#*#232331#*#* – 藍牙測試
*#*#232337#*# – 顯示藍牙裝置地址
*#*#8255#*#* –啟動 GTalk 服務監視器
顯示手機軟體版本的代碼
*#*#4986*2650468#*#* – PDA、 Phone、 H/W、 RFCallDate
*#*#1234#*#* – PDA 及 Phone
*#*#1111#*#* – FTA SW 版本
*#*#2222#*#* – FTA HW 版本
*#*#44336#*#* – PDA 、Phone、 CSC、 Build Time、 Changelist number
各項硬體測試
*#*#0283#*#* – Packet Loopback
*#*#0*#*#* – LCD 測試
*#*#0673#*#* 或 *#*#0289#*#* – Melody 測試
*#*#0842#*#* – 裝置測試,例如振動、亮度
*#*#2663#*#* – 觸控屏幕版本
*#*#2664#*#* – 觸控屏幕測試
*#*#0588#*#* – 接近感應器測試
*#*#3264#*#* – 內存版本
『伍』 Android獲取軟鍵盤高度
在 Android 里我們是無法直接獲取軟鍵盤高度的,但是在某些場景下,我們又需要獲取軟鍵盤的高度。我們可以使用 ViewTreeObserver.OnGlobalLayoutListener 來監聽窗口大小的變化,當軟鍵盤彈出時,窗口高度會變小,使用原始窗口高度減去當前窗口高度,就可以得出軟鍵盤的高度了。
一般我們在 Activity 的 onCreate() 方法中開始監聽:
請注意當 Activity 被銷毀的時候,一定要移除監聽,否則就會產生內存泄漏:
通過以上方法可以實時監聽軟鍵盤的高度變化,特別是像有些輸入法例如搜狗,可以隨時切換拼音輸入、手寫輸入,這個時候軟鍵盤的高度都會發生變化。
除此之外,還可以通過該方法判斷軟鍵盤是否彈出。
『陸』 android的手機,鍵盤定義fn鍵,用作數字和字母切換,請問這個鍵值應該定義成多少
如果是自定義鍵盤裡面的話,xml文件裡面的簡直可以是-3,如下內容:
<Key android:codes="-3" android:keyWidth="20%p"
android:keyIcon="@drawable/sym_keyboard_done"
android:keyEdgeFlags="left" />
『柒』 如何捕獲android系統滑鼠軌跡值和鍵盤值
一、找出設備中,我用的是什麼event?
關於該設備打開的是哪個event,我們可以通過命令,cat /proc/bus/input/devices 來查看,執行這個命令後,你會看到您的設備上有多少eventX。
root@lenovo-desktop:~# cat /proc/bus/input/devices
I: Bus=0019 Vendor=0000 Proct=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0019 Vendor=0000 Proct=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0017 Vendor=0001 Proct=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=mouse0 event2
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3
I: Bus=0011 Vendor=0001 Proct=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input3
U: Uniq=
H: Handlers=kbd event3
B: EV=120013
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=17ef Proct=600e Version=0111
N: Name="Lenovo Optical Mouse"
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input4
U: Uniq=
H: Handlers=mouse1 event4
B: EV=17
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103
B: MSC=10
?..
?..
我的ubunte系統上敲完這個命令後,能夠看到event0—event7,共8個設備。
如上面紅色標記,可以很快找出該設備對應的輸入設備,以及對應的eventX,跨入眼前視野的「Lenovo Optical Mouse」 這肯定是我滑鼠啊,用的牌子就是這個Lenovo,背面上寫著呢。
二、對input_event數據結構的解釋
標准按鍵的編碼的定義在 linux/input.h中
struct input_event {
struct timeval time; //按鍵時間
__u16 type; //類型,在下面有定義
__u16 code; //要模擬成什麼按鍵
__s32 value;//是按下還是釋放
};
1、code:
事件的代碼.如果事件的類型代碼是EV_KEY,該代碼code為設備鍵盤代碼. 代碼植0~127為鍵盤上的按鍵代碼,
0x110~0x116 為滑鼠上按鍵代碼,
其中0x110(BTN_ LEFT)為滑鼠左鍵,
0x111(BTN_RIGHT)為滑鼠右鍵,
0x112(BTN_ MIDDLE)為滑鼠中鍵.
如果事件的類型代碼是EV_REL,code值表示軌跡的類型.如指示滑鼠的X軸方向REL_X(代碼為0x00),指示滑鼠的Y軸方向REL_Y(代碼 為0x01),指示滑鼠中輪子方向REL_WHEEL(代碼為0x08).
其它代碼含義請參看include/linux/input.h文件.
2、type:
EV_KEY,鍵盤
EV_REL,相對坐標(軌跡球)
EV_ABS,絕對坐標(滑鼠)
。。。
/*
*Event types參考值
*/
#define EV_SYN 0x00
#define EV_KEY 0x01 //按鍵
#define EV_REL 0x02 //相對坐標(軌跡球)
#define EV_ABS 0x03 //絕對坐標(滑鼠)
#define EV_MSC 0x04 //其他
#define EV_SW 0x05
#define EV_LED 0x11 //LED
#define EV_SND 0x12//聲音
#define EV_REP 0x14//repeat
#define EV_FF 0x15
#define EV_PWR 0x16
#define EV_FF_STATUS 0x17
#define EV_MAX 0x1f
#define EV_CNT (EV_MAX+1)
3、value:
事件的值.如果事件的類型代碼是EV_KEY,當按鍵按下時值為1,松開時值為0; 如果事件的類型代碼是EV_ REL,value的正數值和負數值分別代表兩個不同方向的值.
三、抓取event值的原理:
對eventX進行read/write來抓取event的各種信息;
1、打開event設備
event0_fd = open(「/dev/input/event0」, O_RDWR);
2、read 設備
rd = read(event0_fd, &event0, sizeof(struct input_event) * 64);
『捌』 怎麼在android系統裡面捕獲外接鍵盤鍵值
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { //keyCode return super.onKeyDown(keyCode, event);}
『玖』 android 軟鍵盤向下隱藏的鍵值是多少
原理:自定義布局的onSizeChanged()方法,在其中增加一個監聽介面,當軟鍵盤顯示或隱藏使得布局尺寸發生改變,就能捕獲到這個事件。 具體方法如下: 首先,在清單文件Manifest.xml中的對應的Activity標簽內設置 android:windowSoftInputMode=」adjustResize」 作用是當軟鍵盤顯示或隱藏時,該Activity主窗口總是會被調整大小以便留出軟鍵盤的空間。唯有這樣才能保證布局觸發onSizeChanged()方法。 然後,自定義一個布局,具體是RelativeLayout、LinearLayout或是其它的,根據實際情況而定,自定義的目的是在其onSizeChanged()方法中增加一個監聽介面。這里給出一個自定義RelativeLayout布局代碼: public class CustomRelativeLayout extends RelativeLayout { private OnSizeChangedListener listener; public CustomRelativeLayout(Context context) { super(context); } public CustomRelativeLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { Log.d(TAG.CUSTOM_VIEW, 「onSizeChanged」); super.onSizeChanged(w, h, oldw, oldh); if (listener != null) { listener.onSizeChanged(w, h, oldw, oldh); } } public void setOnSizeChangedListener(OnSizeChangedListener listener) { this.listener = listener; } /** * Activity主窗口大小改變時的回調介面(本示例中,等價於軟鍵盤顯示隱藏時的回調介面) */ public interface OnSizeChangedListener { public void onSizeChanged(int w, int h, int oldw, int oldh); } } 最後,在程序中使用此介面(xxx.setOnSizeChangedListener(…))即可實現監聽鍵盤隱藏或顯示事件。
『拾』 android 怎麼改鍵盤按鍵
首先,保證手機已經ROOT,並且安裝了RE文件管理器,先用RE管理器打開system\usr\keylayout下的文件s3c-keypad.kl(以文本編輯方式打開),在目錄中不同的數字對應不同的功能,看好原先對應的功能,在將數字按照喜歡的風格進行重新編寫:
1.
116代表鎖屏鍵
2.
102代表寶石鍵
3.
231代表撥號鍵
4.
217代表相機上面的鍵
5.
26代表掛機鍵
6.
115代表音量+
7.
114代表音量-
8.
158代表相機鍵
9.
改完立刻重啟就OK了。