當前位置:首頁 » 安卓系統 » android全屏鍵盤

android全屏鍵盤

發布時間: 2023-01-15 13:51:20

A. 【Android】 如何在橫屏狀態下打開全屏輸入法

點擊底部菜單欄的設置模塊

進入到設置界面點擊第一個的輸入法設置

進入到輸入法的設置界面我們可以點擊鍵盤設置
在鍵盤設置中點擊勾選橫屏時滿屏

B. android的webview下,如果設置了全屏,輸入框獲得焦點時,軟鍵盤會蓋住輸入框,怎麼破

你可以在webview的外面套一層ScrollView,這樣當控制項被擋住了就可以上下滑動

C. 手機虛擬鍵盤介紹

虛擬鍵盤是一種顯示與輸入結合的產品,先要顯示出鍵盤,才能進行信息輸入。諸如手機等手持設備,受屏幕小的局限,使得虛擬鍵盤的鍵位密集,鍵格窄小,最終導致尋鍵困難,擊鍵准確性不高,用戶想要實現盲打更是無從談起。下面是我收集整理的手機虛擬鍵盤介紹,歡迎閱讀。

手機虛擬鍵盤是什麼

手機虛擬鍵盤是指用於全觸摸手機的虛擬於屏幕的按鍵虛擬鍵盤,可直接把觸摸屏上的虛擬鍵盤當實質鍵盤使用。手機虛擬鍵盤為一種以CCITT的標准鍵,結合多個功能鍵組成實際鍵盤及鍵值表,產生虛擬鍵盤,以改善數據鍵入的方法。

手機虛擬鍵盤至少包含以下步驟、依據預設的鍵盤狀態值顯示對應的虛擬鍵;判斷是否有實際鍵被按下,若被按下鍵為CCITT標准鍵其中之一時,查詢鍵值表以得到鍵值;然後以預設的鍵盤狀態值及鍵值,查詢鍵值表以得到虛擬鍵值;若虛擬鍵值為虛擬鍵盤切換鍵則依據虛擬鍵盤切換鍵的鍵值改變鍵盤狀態值並呼叫鍵盤顯示模組以顯示對應的虛擬鍵盤,並且去除鍵值;否則,呼叫鍵盤顯示模組以顯示該虛擬鍵值。

手機虛擬鍵盤怎麼打開

谷歌開放安卓給移動智能操作系統迎來了一次大的發展,不過也同樣帶來一個困擾谷歌很久的問題、碎片化。由於各手機廠商對Android系統有較大的自由定製權利,很多第三方ROM的操作習慣和交互開始向標桿iOS學習,這也出現了後來百花齊放的ROM市場。

不過從Android後續版本的升級來看,谷歌也從一定程度上收緊一部分許可權,而虛擬按鍵也是一次嘗試與改變。採用虛擬按鍵後的Android手機會在屏幕出現一個雙下巴,影響視覺美觀,而且虛擬按鍵在使用交互上也沒有物理按鍵的那種踏實感。

在後續的Android版本中,谷歌也開始優化虛擬按鍵的美觀性,比如做成背景透明,另外為了保持UI的.統一性,谷歌開放虛擬按鍵的API介面給開發者,讓開發者在不同的應用中可以自由調用虛擬按鍵,比如在視頻播放時可以隱藏虛擬按鍵來達到更好的視覺效果。

不得不說,目前應用虛擬按鍵的安卓手機在整體外形效果,採用虛擬按鍵的手機,廠商可以做到更高的屏佔比,使得整機的外形看起來更加協調。採用物理按鍵或者實體按鍵的手機,在機身結構設計時需要在機身下方留出空間位置,這在手機這種寸土寸金的地方實在是浪費,同時,以往採用實體按鍵的手機存在的漏光現象可以輕松解決掉。

說了那麼多虛擬按鍵的優點,其實缺點也很明顯,首先是要額外占據一部分屏幕區域,導致屏幕顯示面積變小,部分應用也會產生壓縮變形。當然虛擬按鍵區域是可以隱藏的,但下次要使用時就會多一個上劃呼出的操作,相比實體按鍵略有不便。

手機虛擬鍵盤簡介

虛擬鍵盤用在PAD 和智能手機上時,可方便地進行電子郵件收發、文字處理及電子表格製作,用戶可以將筆記本電腦和桌面機留在家裡了。虛擬鍵盤的適用性技術對用戶手指運動加以研究,對鍵盤擊打動作進行解碼和記錄。由於虛擬鍵盤是光投照所形成的影像,不使用時會完全消失。谷歌已於2013年1月向美國專利商標局提交新專利申請,該專利指向激光投射鍵盤,可以將用戶身體變成觸控屏。

手機虛擬鍵盤工作原理

1、模板創建(投影模塊)

將所需界面模板投影至相鄰的界面表面。該模塊由經過特殊設計的高效全息光學原件照明產生,元件帶有紅色[2]二極體激光器。

2、參考面照明(微照明模塊TM)

上一步已產生了紅外線光照平面,且與界面表面平行。光線照在表面上幾毫米處,用戶是無法看到的。當用戶碰觸到界面表面上的按鍵位置時,按鍵邊上的平面就會反射出光線,直接傳到感測器模塊上。

3、映射對應坐標(感測器模塊)

用戶與界面表面互動所反射出的光線傳至紅外線濾光片,並反射至感測器模塊內的CMOS影像。感測器晶元(虛擬介面處理核TM)內含定製的硬體,能夠實時確定反射光的位置 。處理核可同步跟蹤多次反射,因此能夠同時處理多重按鍵並重疊游標控制輸入。

手機虛擬鍵盤發展過程

一、鍵盤顯示爭屏,視覺透明化理念輕松解決在我們的觸屏上,我們經常會遇到虛擬鍵盤面積過大,導致過多地覆蓋背景,影響我們操作可視性的問題。那麼,解決該問題的根本方法是什麼呢?目前我們已經用到了鍵盤透明化這個技術,它能夠很好的解決鍵盤與背景界面視覺爭屏的矛盾,釋放出交互空間,讓我們不用擔心觸屏的面積會影響到我們界面背景。

我們都知道,可透視鍵盤不是新技術,特別對於專業人員來說,也沒有技術難度。但是這並不意味著我們就能將這一技術運用自如。現在我們能看到的透明化鍵盤技術方案,都是在背景上直接疊加透明化處理的鍵盤,雖然解決了原有的問題,但是也導致我們使用的時候,出現顏色混搭,視覺舒適性差的新問題,讓人看著不方便。因此,透明化鍵盤要真正讓人接受。首先,要滿足我們對背景畫面美觀的要求,盡量減少鍵盤界面對背景畫面的影響,最大程度的保全背景畫面信息;其次,要繼續提升透明鍵盤的人性化融合度,多餘顯示的鍵格虛影是必須除去的,按鍵字元也可以通過鏤空、亮度增減或間歇顯示等手段進行隱飾處理。

二、解決鍵格窄小密集 只需布局全屏化

鍵盤受屏幕大小的限制,它的使用區域有限,導致了鍵盤每個字元的位置很密集,而且用手點擊觸屏的時候不能像實體的鍵盤那樣通過手指感覺出來鍵盤每個符號的位置,讓我們找字元的時候很困難……這是在我們用的觸屏手機和平板電腦上一直存在這樣的問題。如果連最基本的准確點擊想要的字元都困難,就更不要說盲打了。而要改變這些問題,我們就必須增大鍵盤的面積,擴展它布局。同時,在鍵盤透明化的基礎上,我們可以輕易的實現鍵盤全屏布局,讓我們擁有有寬大舒適的鍵格布局。

全屏鍵盤可以充分利用好觸屏的邊角定位。我們用手點擊觸屏的時候,雖然沒有實體鍵盤的觸感,但可以通過手指感覺出來觸屏邊角確定鍵盤每個符號的位置。就像圖中看到的那樣,像龜背一樣的鍵格,它的外圍鍵格可實現邊角定位,而且鍵盤的面積也可以適當縮小,中心區域鍵格非常大,這樣的布局,能讓鍵格定位同樣容易、准確。因此,龜背格布局實現100%盲打是一件很容易的事情。為了更好地利用觸屏定位,增強按鍵的准確性,在觸屏周邊的區域設計一系列的凹凸點也是比較合適的方案。使用全屏大鍵格鍵盤,雖然方便但是它是有操作要求的,如果我們的用戶沒有很好的掌握鍵格布局情況,那麼這樣的操作,只會讓用戶感到更加麻煩和頭痛,更不要說去輕松操作了。

總體來看,虛擬鍵盤的全屏化其實很容易實現,在目前的硬體設備上就能夠得到很好的應用,因此我們可以得出,虛擬鍵盤全屏化是可以實現的鍵盤發展的一個好方向。

三、界面切換頻繁 操作立體化來解決

鍵格增大了,界面增多了,用戶的界面切換動作也會越來越多。這樣的情況,就會讓以後我們簡單的輸入「回家吃飯吧」這樣簡單的文字,都會出現「切換操作—→擊鍵輸入—→再切換操作—→擊鍵輸入」的麻煩狀況。切換動作如此繁瑣,讓我們的輸入過程變得十分痛苦,不僅影響我們的速度,也讓我們普通消費者覺得觸屏成了一件技術活。

但是,如果我們不使用單一作業平台,而是使用兩個獨立操作平台的話,在技術就能實現同時完成兩項操作的。從專業的角度上來說,將界面的切換操作和擊鍵操作分別分配到兩個輸入平台上就能夠實現切換和擊鍵輸入的同步並行,這樣我們一秒鍾就能實現兩種任務的完成。

簡單來說,操作立體化就是將虛擬鍵盤的一些觸屏操作遷移到觸屏以外的輸入平台上,通過觸屏和外部輸入平台,同時完成輸入過程。就像吃東西一樣,豬只會用嘴巴進食是多麼的低能粗蠻,而我們人類用手拿著吃就輕松文雅多了。輸入過程中也是這樣,切換動作轉移到觸屏之外的另一個輸入平台上進行,觸屏只負責擊鍵輸入,兩個平台一起工作就能夠實現切換操作與擊鍵輸入同步完成。

D. 關於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等等。

E. 全屏手機鍵盤怎麼調出來

全屏手機鍵盤如果想調出來的話,這樣需要看是哪個品牌的手機,因為不同的品牌手機,所操作的方法都不一樣的。因此,可以嘗試打開手機的設置選項來查找一下

F. 手機游戲里鍵盤不全屏怎麼設置

1、首先點擊選項進入後選擇鍵盤與輸入法選項。
2、其次點擊管理,進入後選擇管理輸入法選項。
3、最後點擊調整,進入設置拖動設置鍵盤的大小即可調整全屏。

G. 安卓手機微信鍵盤手寫怎麼變全屏

這是需要進行輸入法的設置,在輸入法界面選擇類似鍵盤圖標點擊一下,然後會出現9鍵拼音,26鍵拼音,全屏手寫,半屏手寫,選擇全屏手寫就可以了。

H. Android如何在軟鍵盤可見時以全屏模式調整布局

可以使用布局嵌套,最外層布局中嵌套兩個水平布局,在使用layout_weight權重設置比例關系就可以了。

I. 【轉】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/

熱點內容
編譯不出來的原因 發布:2025-07-05 05:14:00 瀏覽:61
絕地求生國際服如何選擇伺服器 發布:2025-07-05 05:08:56 瀏覽:64
雲伺服器壓力測試 發布:2025-07-05 05:00:28 瀏覽:373
成套設備易損配件清單怎麼配置 發布:2025-07-05 04:55:43 瀏覽:295
c語言線性插值法 發布:2025-07-05 04:55:35 瀏覽:325
鋰離子電池高溫存儲 發布:2025-07-05 04:54:55 瀏覽:342
我的世界如何關閉伺服器公告欄 發布:2025-07-05 04:42:31 瀏覽:642
如何對iis伺服器遠程執行代碼 發布:2025-07-05 03:49:19 瀏覽:132
安卓手機連不到熱點為什麼 發布:2025-07-05 03:47:53 瀏覽:35
安卓平板哪個清理內存好 發布:2025-07-05 03:47:43 瀏覽:921