1.隱藏指定的按鈕: KeyboardView .java# onDrawKey()
public class KeyboardView extends View { private void onDrawKey(final Key key, final Canvas canvas, final Paint paint) {//Log.e("KeyboardView", "=== onDrawKey(), key="+key.mLabel+","+key.mCode+",kname="+Constants.printableCode(key.mCode));//hide the settings key, edit by xghif(key.mCode ==Constants.CODE_SETTINGS){Log.i("KeyboardView", "----hide the settings key---");return;} final int keyDrawX = key.getDrawX() + getPaddingLeft(); final int keyDrawY = key.mY + getPaddingTop(); canvas.translate(keyDrawX, keyDrawY); final int keyHeight = mKeyboard.mMostCommonKeyHeight - mKeyboard.mVerticalGap; final KeyVisualAttributes attr = key.mKeyVisualAttributes; final KeyDrawParams params = mKeyDrawParams.mayCloneAndUpdateParams(keyHeight, attr); params.mAnimAlpha = Constants.Color.ALPHA_OPAQUE; if (!key.isSpacer()) { onDrawKeyBackground(key, canvas); } onDrawKeyTopVisuals(key, canvas, paint, params); canvas.translate(-keyDrawX, -keyDrawY);} }"
2.屏蔽某個按鈕的功能 修改 LatinIME .java # onCodeInput()
public class LatinIME extends InputMethodService implements KeyboardActionListener, SuggestionStripView.Listener, TargetPackageInfoGetterTask.OnTargetPackageInfoKnownListener, Suggest.SuggestInitializationListener {...@overridepublic void onCodeInput(final int primaryCode, final int x, final int y) { if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) { ResearchLogger.latinIME_onCodeInput(primaryCode, x, y); } final long when = SystemClock.uptimeMillis(); if (primaryCode != Constants.CODE_DELETE || when > mLastKeyTime + QUICK_PRESS) { mDeleteCount = 0; } mLastKeyTime = when; mConnection.beginBatchEdit(); final KeyboardSwitcher switcher = mKeyboardSwitcher; // The space state depends only on the last character pressed and its own previous // state. Here, we revert the space state to neutral if the key is actually modifying // the input contents (any non-shift key), which is what we should do for // all inputs that do not result in a special state. Each character handling is then // free to override the state as they see fit. final int spaceState = mSpaceState; if (!mWordComposer.isComposingWord()) mIsAutoCorrectionIndicatorOn = false; // TODO: Consolidate the double-space period timer, mLastKeyTime, and the space state. if (primaryCode != Constants.CODE_SPACE) { mHandler.cancelDoubleSpacePeriodTimer(); } boolean didAutoCorrect = false; switch (primaryCode) { case Constants.CODE_DELETE: mSpaceState = SPACE_STATE_NONE; handleBackspace(spaceState); mDeleteCount++; mExpectingUpdateSelection = true; LatinImeLogger.logOnDelete(x, y); break; case Constants.CODE_SHIFT: // Note: calling back to the keyboard on Shift key is handled in onPressKey() // and onReleaseKey(). final Keyboard currentKeyboard = switcher.getKeyboard(); if (null != currentKeyboard && currentKeyboard.mId.isAlphabetKeyboard()) { // TODO: Instead of checking for alphabetic keyboard here, separate keycodes for // alphabetic shift and shift while in symbol layout. handleRecapitalize(); } break; case Constants.CODE_SWITCH_ALPHA_SYMBOL: // Note: calling back to the keyboard on symbol key is handled in onPressKey() // and onReleaseKey(). break; case Constants.CODE_SETTINGS: //TODO... hide settings fuction... edit by xgh //onSettingsKeyPressed(); break; case Constants.CODE_SHORTCUT: mSubtypeSwitcher.switchToShortcutIME(this); break; case Constants.CODE_ACTION_NEXT: performEditorAction(EditorInfo.IME_ACTION_NEXT); break; case Constants.CODE_ACTION_PREVIOUS: performEditorAction(EditorInfo.IME_ACTION_PREVIOUS); break; case Constants.CODE_LANGUAGE_SWITCH: handleLanguageSwitchKey(); break; case Constants.CODE_RESEARCH: if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) { ResearchLogger.getInstance().onResearchKeySelected(this); } break; case Constants.CODE_ENTER: final EditorInfo editorInfo = getCurrentInputEditorInfo(); final int imeOptionsActionId = InputTypeUtils.getImeOptionsActionIdFromEditorInfo(editorInfo); if (InputTypeUtils.IME_ACTION_CUSTOM_LABEL == imeOptionsActionId) { // Either we have an actionLabel and we should performEditorAction with actionId // regardless of its value. performEditorAction(editorInfo.actionId); } else if (EditorInfo.IME_ACTION_NONE != imeOptionsActionId) { // We didn't have an actionLabel, but we had another action to execute. // EditorInfo.IME_ACTION_NONE explicitly means no action. In contrast, // EditorInfo.IME_ACTION_UNSPECIFIED is the default value for an action, so it // means there should be an action and the app didn't bother to set a specific // code for it - presumably it only handles one. It does not have to be treated // in any specific way: anything that is not IME_ACTION_NONE should be sent to // performEditorAction. performEditorAction(imeOptionsActionId); } else { // No action label, and the action from imeOptions is NONE: this is a regular // enter key that should input a carriage return. didAutoCorrect = handleNonSpecialCharacter(Constants.CODE_ENTER, x, y, spaceState); } break; case Constants.CODE_SHIFT_ENTER: didAutoCorrect = handleNonSpecialCharacter(Constants.CODE_ENTER, x, y, spaceState); break; default: didAutoCorrect = handleNonSpecialCharacter(primaryCode, x, y, spaceState); break; } switcher.onCodeInput(primaryCode); // Reset after any single keystroke, except shift and symbol-shift if (!didAutoCorrect && primaryCode != Constants.CODE_SHIFT && primaryCode != Constants.CODE_SWITCH_ALPHA_SYMBOL) mLastComposedWord.deactivate(); if (Constants.CODE_DELETE != primaryCode) { mEnteredText = null; } mConnection.endBatchEdit();}
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
財務總監的工作主要有哪些?財務總監的具體職責如下:1.協調和監督企業的營運資金,保證企業的正常運轉。2.為企業發展融資。3.計劃公司納稅。4.支持主業發展,服務好業務部門。5.參與企業投資決策。財務總監的工作主要有哪些?1.在公司董事會和總經理的領導下,管理公司的會計、報表和預算。2.規劃公司的財務戰略。財務總監要根據公司下一步的戰略,提前做好財務預測決策,從財務的角度,提前做好投融資和成本控制的...
泰州寺巷哪里好玩?泰州寺巷鎮位于泰州醫藥高新區。有趣的地方有:是一個東方小鎮,集商業、娛樂、餐飲、運動于一體,尤其是各種餐廳,有很多獨特的風味。四兒巷東邊的天祿湖公園。公園內有廣闊的水面、塑膠健身步道、茂密的樹木和樹蔭,是健身和休閑的最佳場所。東方小鎮四期開盤時間?臺州東方小鎮四期開盤時間未定。泰州東方小鎮四期位于泰高路與堯城大道交匯處的醫藥城。東方小鎮四期是醫藥城重要的生活配套項目,總投資約20...
什么軟件可以查看手機cpu型號?1.可以看到型號、類型、基帶版本等。通過手機設置-關于手機,然后在線查看手機的具體配置。二是安兔兔、360優化大師、魯大師、騰訊手機管家等硬件測試可以檢測出CPU的具體型號。手機評測軟件魯大師好還是安兔兔好?安兔兔會更好。1.安兔兔是手機評測首選,專門測試手機各項指標。通過安兔兔的評測,可以得到設備的單項和整體得分,從而判斷硬件的性能水平。2.安兔兔評測軟件加強了對...