当前位置: 首页>>代码示例>>Java>>正文


Java KeyEvent.ACTION_MULTIPLE属性代码示例

本文整理汇总了Java中android.view.KeyEvent.ACTION_MULTIPLE属性的典型用法代码示例。如果您正苦于以下问题:Java KeyEvent.ACTION_MULTIPLE属性的具体用法?Java KeyEvent.ACTION_MULTIPLE怎么用?Java KeyEvent.ACTION_MULTIPLE使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在android.view.KeyEvent的用法示例。


在下文中一共展示了KeyEvent.ACTION_MULTIPLE属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: dispatchKeyEvent

/**
 * @brief Captures the keys of the keyboard
 * @param event The event
 * @details Capture the keys of the keyboard. If the character has to be pressed with a combination of the shift key 
 * and other key then adds 100 to the modKeyCount attribute to applies the offset
 */
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
	if(event.getAction() == KeyEvent.ACTION_DOWN || event.getAction() == KeyEvent.ACTION_UP|| event.getAction() == KeyEvent.ACTION_MULTIPLE){
		int keyunicode = event.getUnicodeChar(event.getMetaState() );
	    char character = (char) keyunicode;
	    int key = event.getKeyCode();
	    if(key == 59){
	    	if(modKeyCount == 0){
	    		modKeyCount = 100;
	    	}
	    	else{
	    		modKeyCount = 0;
	    	}
	    }
	    else if(key >= 7){
	    	boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
	    	vnc.sendKey(modKeyCount+key,down);
	    	
	    }
	   
	    
	    Log.e(DEBUG_TAG,String.valueOf( event.getKeyCode()));
	}
    return super.dispatchKeyEvent(event);
}
 
开发者ID:CodyyAndroid,项目名称:LibVNCAndroid,代码行数:31,代码来源:CanvasActivity.java

示例2: keyEventToJs

private ReturnObject keyEventToJs(KeyEvent event) {
    ReturnObject o = new ReturnObject();
    o.put("key", event.getKeyCode());
    o.put("id", event.getDeviceId());

    String action = "unknown";
    switch (event.getAction()) {
        case KeyEvent.ACTION_DOWN:
            action = "down";
            break;

        case KeyEvent.ACTION_UP:
            action = "up";
            break;

        case KeyEvent.ACTION_MULTIPLE:
            action = "multiple";
            break;
    }

    o.put("action", action);

    o.put("alt", event.isAltPressed());
    o.put("ctrl", event.isCtrlPressed());
    o.put("fn", event.isFunctionPressed());
    o.put("meta", event.isMetaPressed());
    o.put("chars", event.getCharacters());
    o.put("number", event.getNumber());

    return o;
}
 
开发者ID:victordiaz,项目名称:phonk,代码行数:31,代码来源:PDevice.java

示例3: onKey

@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
    int action = keyEvent.getAction();

    // Work-around for spurious key event from IME, bug #1639445
    if(action == KeyEvent.ACTION_MULTIPLE && keyCode == KeyEvent.KEYCODE_UNKNOWN) {
        return true; // eat it
    }

    if(keyEvent.getUnicodeChar() == '=') {
        if(action == KeyEvent.ACTION_UP) {
            mHandler.onEnter();
        }
        return true;
    }

    if(keyCode != KeyEvent.KEYCODE_DPAD_CENTER && keyCode != KeyEvent.KEYCODE_DPAD_UP && keyCode != KeyEvent.KEYCODE_DPAD_DOWN
            && keyCode != KeyEvent.KEYCODE_ENTER) {
        if(keyEvent.isPrintingKey() && action == KeyEvent.ACTION_UP) {
            // Tell the handler that text was updated.
            mHandler.onTextChanged();
        }
        return false;
    }

    /*
     * We should act on KeyEvent.ACTION_DOWN, but strangely sometimes the
     * DOWN event isn't received, only the UP. So the workaround is to act
     * on UP... http://b/issue?id=1022478
     */

    if(action == KeyEvent.ACTION_UP) {
        switch(keyCode) {
        case KeyEvent.KEYCODE_ENTER:
        case KeyEvent.KEYCODE_DPAD_CENTER:
            mHandler.onEnter();
            break;

        case KeyEvent.KEYCODE_DPAD_UP:
            mHandler.onUp();
            break;

        case KeyEvent.KEYCODE_DPAD_DOWN:
            mHandler.onDown();
            break;
        }
    }
    return true;
}
 
开发者ID:gigabytedevelopers,项目名称:CalcMate,代码行数:49,代码来源:EventListener.java

示例4: dispatchKeyEvent

@Override public boolean dispatchKeyEvent(KeyEvent event)
{
	if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
		return mUnityPlayer.injectEvent(event);
	return super.dispatchKeyEvent(event);
}
 
开发者ID:Hand-Talk,项目名称:android-library,代码行数:6,代码来源:UnityPlayerActivity.java

示例5: onKeyDown

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (LOG_KEY_EVENTS)
        Log.i(EmulatorDebug.LOG_TAG, "onKeyDown(keyCode=" + keyCode + ", isSystem()=" + event.isSystem() + ", event=" + event + ")");
    if (mEmulator == null) return true;

    if (mClient.onKeyDown(keyCode, event, mTermSession)) {
        invalidate();
        return true;
    } else if (event.isSystem() && (!mClient.shouldBackButtonBeMappedToEscape() || keyCode != KeyEvent.KEYCODE_BACK)) {
        return super.onKeyDown(keyCode, event);
    } else if (event.getAction() == KeyEvent.ACTION_MULTIPLE && keyCode == KeyEvent.KEYCODE_UNKNOWN) {
        mTermSession.write(event.getCharacters());
        return true;
    }

    final int metaState = event.getMetaState();
    final boolean controlDownFromEvent = event.isCtrlPressed();
    final boolean leftAltDownFromEvent = (metaState & KeyEvent.META_ALT_LEFT_ON) != 0;
    final boolean rightAltDownFromEvent = (metaState & KeyEvent.META_ALT_RIGHT_ON) != 0;

    int keyMod = 0;
    if (controlDownFromEvent) keyMod |= KeyHandler.KEYMOD_CTRL;
    if (event.isAltPressed()) keyMod |= KeyHandler.KEYMOD_ALT;
    if (event.isShiftPressed()) keyMod |= KeyHandler.KEYMOD_SHIFT;
    if (handleKeyCode(keyCode, keyMod)) {
        if (LOG_KEY_EVENTS) Log.i(EmulatorDebug.LOG_TAG, "handleKeyCode() took key event");
        return true;
    }

    // Clear Ctrl since we handle that ourselves:
    int bitsToClear = KeyEvent.META_CTRL_MASK;
    if (rightAltDownFromEvent) {
        // Let right Alt/Alt Gr be used to compose characters.
    } else {
        // Use left alt to send to terminal (e.g. Left Alt+B to jump back a word), so remove:
        bitsToClear |= KeyEvent.META_ALT_ON | KeyEvent.META_ALT_LEFT_ON;
    }
    int effectiveMetaState = event.getMetaState() & ~bitsToClear;

    int result = event.getUnicodeChar(effectiveMetaState);
    if (LOG_KEY_EVENTS)
        Log.i(EmulatorDebug.LOG_TAG, "KeyEvent#getUnicodeChar(" + effectiveMetaState + ") returned: " + result);
    if (result == 0) {
        return true;
    }

    int oldCombiningAccent = mCombiningAccent;
    if ((result & KeyCharacterMap.COMBINING_ACCENT) != 0) {
        // If entered combining accent previously, write it out:
        if (mCombiningAccent != 0)
            inputCodePoint(mCombiningAccent, controlDownFromEvent, leftAltDownFromEvent);
        mCombiningAccent = result & KeyCharacterMap.COMBINING_ACCENT_MASK;
    } else {
        if (mCombiningAccent != 0) {
            int combinedChar = KeyCharacterMap.getDeadChar(mCombiningAccent, result);
            if (combinedChar > 0) result = combinedChar;
            mCombiningAccent = 0;
        }
        inputCodePoint(result, controlDownFromEvent, leftAltDownFromEvent);
    }

    if (mCombiningAccent != oldCombiningAccent) invalidate();

    if (onAutoCompleteListener != null) {
        if (event.isPrintingKey()) {
            char printingChar = (char) event.getUnicodeChar(metaState);
            if (printingChar != '\b') {
                // ASCII chars
                onAutoCompleteListener.onCompletionRequired(new String(new char[]{printingChar}));
            }
        }
    }

    return true;
}
 
开发者ID:NeoTerm,项目名称:NeoTerm,代码行数:76,代码来源:TerminalView.java


注:本文中的android.view.KeyEvent.ACTION_MULTIPLE属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。