1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          LatinIME 修改記錄

          來源:互聯網轉載 時間:2024-01-29 07:59:19

          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();}
          標簽:latinime-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          財務總監的工作主要有哪些?財務總監的具體職責如下:1.協調和監督企業的營運資金,保證企業的正常運轉。2.為企業發展融資。3.計劃公司納稅。4.支持主業發展,服務好業務部門。5.參與企業投資決策。財務總監的工作主要有哪些?1.在公司董事會和總經理的領導下,管理公司的會計、報表和預算。2.規劃公司的財務戰略。財務總監要根據公司下一步的戰略,提前做好財務預測決策,從財務的角度,提前做好投融資和成本控制的...

          泰州寺巷哪里好玩?泰州寺巷鎮位于泰州醫藥高新區。有趣的地方有:是一個東方小鎮,集商業、娛樂、餐飲、運動于一體,尤其是各種餐廳,有很多獨特的風味。四兒巷東邊的天祿湖公園。公園內有廣闊的水面、塑膠健身步道、茂密的樹木和樹蔭,是健身和休閑的最佳場所。東方小鎮四期開盤時間?臺州東方小鎮四期開盤時間未定。泰州東方小鎮四期位于泰高路與堯城大道交匯處的醫藥城。東方小鎮四期是醫藥城重要的生活配套項目,總投資約20...

          什么軟件可以查看手機cpu型號?1.可以看到型號、類型、基帶版本等。通過手機設置-關于手機,然后在線查看手機的具體配置。二是安兔兔、360優化大師、魯大師、騰訊手機管家等硬件測試可以檢測出CPU的具體型號。手機評測軟件魯大師好還是安兔兔好?安兔兔會更好。1.安兔兔是手機評測首選,專門測試手機各項指標。通過安兔兔的評測,可以得到設備的單項和整體得分,從而判斷硬件的性能水平。2.安兔兔評測軟件加強了對...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>