android.view.KeyEvent#KEYCODE_DPAD_DOWN源码实例Demo

下面列出了android.view.KeyEvent#KEYCODE_DPAD_DOWN 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。


void reportExtractedMovement(int keyCode, int count) {
    int dx = 0, dy = 0;
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_LEFT:
            dx = -count;
            break;
        case KeyEvent.KEYCODE_DPAD_RIGHT:
            dx = count;
            break;
        case KeyEvent.KEYCODE_DPAD_UP:
            dy = -count;
            break;
        case KeyEvent.KEYCODE_DPAD_DOWN:
            dy = count;
            break;
    }
    onExtractedCursorMovement(dx, dy);
}
 
源代码2 项目: Trebuchet   文件: FocusHelper.java

/**
 * Helper method to be used for playing sound effects.
 */
@Thunk static void playSoundEffect(int keyCode, View v) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_LEFT:
            v.playSoundEffect(SoundEffectConstants.NAVIGATION_LEFT);
            break;
        case KeyEvent.KEYCODE_DPAD_RIGHT:
            v.playSoundEffect(SoundEffectConstants.NAVIGATION_RIGHT);
            break;
        case KeyEvent.KEYCODE_DPAD_DOWN:
        case KeyEvent.KEYCODE_PAGE_DOWN:
        case KeyEvent.KEYCODE_MOVE_END:
            v.playSoundEffect(SoundEffectConstants.NAVIGATION_DOWN);
            break;
        case KeyEvent.KEYCODE_DPAD_UP:
        case KeyEvent.KEYCODE_PAGE_UP:
        case KeyEvent.KEYCODE_MOVE_HOME:
            v.playSoundEffect(SoundEffectConstants.NAVIGATION_UP);
            break;
        default:
            break;
    }
}
 
源代码3 项目: TuentiTV   文件: EnterPasswordActivity.java

@Override public boolean onKeyDown(int keyCode, KeyEvent event) {
  switch (keyCode) {
    case KeyEvent.KEYCODE_DPAD_DOWN:
      presenter.onDpadDownPressed();
      return true;
    case KeyEvent.KEYCODE_DPAD_LEFT:
      presenter.onDpadLeftPressed();
      return true;
    case KeyEvent.KEYCODE_DPAD_RIGHT:
      presenter.onDpadRightPressed();
      return true;
    case KeyEvent.KEYCODE_DPAD_UP:
      presenter.onDpadUpPressed();
      return true;
    default:
      return super.onKeyDown(keyCode, event);
  }
}
 
源代码4 项目: MHViewer   文件: GalleryActivity.java

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    // Check volume
    if (Settings.getVolumePage()) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN ||
                keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
            return true;
        }
    }

    // Check keyboard and Dpad
    if (keyCode == KeyEvent.KEYCODE_PAGE_UP ||
            keyCode == KeyEvent.KEYCODE_PAGE_DOWN ||
            keyCode == KeyEvent.KEYCODE_DPAD_LEFT ||
            keyCode == KeyEvent.KEYCODE_DPAD_UP ||
            keyCode == KeyEvent.KEYCODE_DPAD_RIGHT ||
            keyCode == KeyEvent.KEYCODE_DPAD_DOWN ||
            keyCode == KeyEvent.KEYCODE_DPAD_CENTER ||
            keyCode == KeyEvent.KEYCODE_SPACE ||
            keyCode == KeyEvent.KEYCODE_MENU) {
        return true;
    }

    return super.onKeyUp(keyCode, event);
}
 

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch(event.getKeyCode()) {
        case KeyEvent.KEYCODE_DPAD_UP:
            if (mSelectedRow > 0) {
                mSelectedRow--;
                invalidate();
                ensureRectVisible();
                return true;
            }
            break;
        case KeyEvent.KEYCODE_DPAD_DOWN:
            if (mSelectedRow < (mNumRows - 1)) {
                mSelectedRow++;
                invalidate();
                ensureRectVisible();
                return true;
            }
            break;
    }
    return false;
}
 

@Override
public void handleKeyboardEvent(KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        int direction;
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_DOWN:
                direction = View.FOCUS_DOWN;
                break;
            case KeyEvent.KEYCODE_DPAD_UP:
                direction = View.FOCUS_UP;
                break;
            case KeyEvent.KEYCODE_DPAD_LEFT:
                direction = View.FOCUS_LEFT;
                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                direction = View.FOCUS_RIGHT;
                break;
            default:
                direction = 0;
                break;
        }
        if (direction != 0 && tryToMoveFocus(direction)) return;
    }
    mContentsClient.onUnhandledKeyEvent(event);
}
 
源代码7 项目: HgLauncher   文件: AppAdapter.java

private static boolean isDown(int keycode) {
    switch (keycode) {
        case KeyEvent.KEYCODE_SYSTEM_NAVIGATION_DOWN:
        case KeyEvent.KEYCODE_DPAD_DOWN:
            return true;
        default:
            return false;
    }
}
 
源代码8 项目: NewXmPluginSDK   文件: NumberPicker.java

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    final int keyCode = event.getKeyCode();
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_CENTER:
        case KeyEvent.KEYCODE_ENTER:
            removeAllCallbacks();
            break;
        case KeyEvent.KEYCODE_DPAD_DOWN:
        case KeyEvent.KEYCODE_DPAD_UP:
            if (!mHasSelectorWheel) {
                break;
            }
            switch (event.getAction()) {
                case KeyEvent.ACTION_DOWN:
                    if (mWrapSelectorWheel || (keyCode == KeyEvent.KEYCODE_DPAD_DOWN)
                            ? getValue() < getMaxValue() : getValue() > getMinValue()) {
                        requestFocus();
                        mLastHandledDownDpadKeyCode = keyCode;
                        removeAllCallbacks();
                        if (mFlingScroller.isFinished()) {
                            changeValueByOne(keyCode == KeyEvent.KEYCODE_DPAD_DOWN);
                        }
                        return true;
                    }
                    break;
                case KeyEvent.ACTION_UP:
                    if (mLastHandledDownDpadKeyCode == keyCode) {
                        mLastHandledDownDpadKeyCode = -1;
                        return true;
                    }
                    break;
            }
    }
    return super.dispatchKeyEvent(event);
}
 
源代码9 项目: CodeEditor   文件: KeysInterpreter.java

public static boolean isNavigationKey(KeyEvent event) {
	int keyCode = event.getKeyCode();
	return keyCode == KeyEvent.KEYCODE_DPAD_DOWN ||
		keyCode == KeyEvent.KEYCODE_DPAD_UP ||
		keyCode == KeyEvent.KEYCODE_DPAD_RIGHT ||
		keyCode == KeyEvent.KEYCODE_DPAD_LEFT;
}
 

private static boolean isJoystickButton(int keyCode) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_CENTER:
        case KeyEvent.KEYCODE_DPAD_LEFT:
        case KeyEvent.KEYCODE_DPAD_RIGHT:
        case KeyEvent.KEYCODE_DPAD_DOWN:
            return true;
        default:
            return KeyEvent.isGamepadButton(keyCode);
    }
}
 
源代码11 项目: android_9.0.0_r45   文件: NumberPicker.java

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    final int keyCode = event.getKeyCode();
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_CENTER:
        case KeyEvent.KEYCODE_ENTER:
            removeAllCallbacks();
            break;
        case KeyEvent.KEYCODE_DPAD_DOWN:
        case KeyEvent.KEYCODE_DPAD_UP:
            if (!mHasSelectorWheel) {
                break;
            }
            switch (event.getAction()) {
                case KeyEvent.ACTION_DOWN:
                    if (mWrapSelectorWheel || ((keyCode == KeyEvent.KEYCODE_DPAD_DOWN)
                            ? getValue() < getMaxValue() : getValue() > getMinValue())) {
                        requestFocus();
                        mLastHandledDownDpadKeyCode = keyCode;
                        removeAllCallbacks();
                        if (mFlingScroller.isFinished()) {
                            changeValueByOne(keyCode == KeyEvent.KEYCODE_DPAD_DOWN);
                        }
                        return true;
                    }
                    break;
                case KeyEvent.ACTION_UP:
                    if (mLastHandledDownDpadKeyCode == keyCode) {
                        mLastHandledDownDpadKeyCode = -1;
                        return true;
                    }
                    break;
            }
    }
    return super.dispatchKeyEvent(event);
}
 
源代码12 项目: TVRemoteIME   文件: IMEService.java

private boolean handleKeyboardFocusEvent(int keyCode){
	if(mInputView != null) {
		if (Environment.needDebug) {
			Environment.debug(TAG, "handleKeyboardFocusEvent:" + keyCode);
		}
		switch (keyCode) {
			case KeyEvent.KEYCODE_DPAD_UP:
			case KeyEvent.KEYCODE_DPAD_DOWN:
			case KeyEvent.KEYCODE_DPAD_LEFT:
			case KeyEvent.KEYCODE_DPAD_RIGHT:
				if(mInputView.isShown()) {
					requestNextButtonFocus(keyCode);
					return true;
				}
				break;
			case KeyEvent.KEYCODE_ENTER:
			case KeyEvent.KEYCODE_DPAD_CENTER:
				if (mInputView.isShown() && focusedView != null) {
					clickButtonByKey(focusedView);
					return true;
				}
				break;
			case KeyEvent.KEYCODE_CAPS_LOCK:
				toggleCapsState(true);
				return true;
			case KeyEvent.KEYCODE_ESCAPE:
			case KeyEvent.KEYCODE_BACK:
				if (mInputView.isShown()){
					if(helpDialog != null && helpDialog.isShown()){
						helpDialog.setVisibility(View.GONE);
					}else {
						this.finishInput();
					}
					return true;
				}
				break;
		}
	}
	return false;
}
 

@Override
public boolean extOnKeyEvent(KeyEvent event) {
    int keyCode = event.getKeyCode();
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_LEFT:
        case KeyEvent.KEYCODE_DPAD_RIGHT:
        case KeyEvent.KEYCODE_DPAD_UP:
        case KeyEvent.KEYCODE_DPAD_DOWN:
            return dispatchKeyEvent(event);
    }
    return false;
}
 

private boolean executeDown(TextView widget, Spannable buffer, int keyCode , KeyEvent event) {
    boolean handled = false;

    if ( keyCode == KEYCODE_PAGE_UP ){
        handled |= volup(widget, buffer);
    }else if ( keyCode == KEYCODE_PAGE_DOWN){
        handled |= voldown(widget, buffer);
    }else if ( keyCode == KEYCODE_MOVE_HOME){
        handled |= movehome(widget, buffer ,event);
    }else if ( keyCode == KEYCODE_MOVE_END){
        handled |= moveend(widget, buffer , event);
    }else{
        switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_UP:
            handled |= up(widget, buffer);
            break;

        case KeyEvent.KEYCODE_DPAD_DOWN:
            handled |= down(widget, buffer);
            break;

        case KeyEvent.KEYCODE_DPAD_LEFT:
            handled |= left(widget, buffer);
            break;

        case KeyEvent.KEYCODE_DPAD_RIGHT:
            handled |= right(widget, buffer);
            break;

        case KeyEvent.KEYCODE_DPAD_CENTER:
            if (JotaTextKeyListener.getMetaStateSelecting(buffer) != 0) {
                if (widget.showContextMenu()) {
                    handled = true;
                }
            }
            break;
        case KeyEvent.KEYCODE_VOLUME_UP:
            if ( sUseVolumeKey ){
                handled |= volup(widget, buffer);
            }
            break;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if ( sUseVolumeKey ){
                handled |= voldown(widget, buffer);
            }
            break;
        }
    }
    if (handled) {
        MetaKeyKeyListener.adjustMetaAfterKeypress(buffer);
        resetLockedMeta(buffer);
    }

    return handled;
}
 
源代码15 项目: TVRemoteIME   文件: XLVideoPlayActivity.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode){
        case KeyEvent.KEYCODE_ESCAPE:
        case KeyEvent.KEYCODE_BACK:
            if(playListView.isShown()) {
                show(defaultTimeout);
                return true;
            }
            break;
        case KeyEvent.KEYCODE_DPAD_LEFT:
        case KeyEvent.KEYCODE_DPAD_RIGHT:
            if(!changeProgressByKey)changeProgressByKey = true;
            if(oldProgressValue == -1){
                oldProgressValue = 0;
                newProgressValue = oldProgressValue;
            }
            newProgressValue += keyCode == KeyEvent.KEYCODE_DPAD_LEFT ? -GlobalSettings.FastForwardInterval : GlobalSettings.FastForwardInterval;
            int max = mVideoView.getDuration();
            //Log.d(TAG, "newProgressValue = " + newProgressValue);
            if(newProgressValue < (0 - max))newProgressValue = (0 - max);
            if(newProgressValue > max)newProgressValue = max;
            float deltaP = oldProgressValue - newProgressValue;
            onProgressSlide(-deltaP / max);
            return true;
        case KeyEvent.KEYCODE_DPAD_DOWN:
        case KeyEvent.KEYCODE_DPAD_UP:
            if(playListView.isShown()){
                View view = playListView.getLayoutManager().getFocusedChild();
                if(view != null){
                    View nextView = playListView.getLayoutManager().onInterceptFocusSearch(view, keyCode == KeyEvent.KEYCODE_DPAD_DOWN ? View.FOCUS_DOWN : View.FOCUS_UP);
                    if(nextView != null)nextView.requestFocus();
                }else {
                    playListView.requestFocus(keyCode == KeyEvent.KEYCODE_DPAD_DOWN ? View.FOCUS_DOWN : View.FOCUS_UP);
                }
                return true;
            }else if(xlDownloadManager.taskInstance().getPlayList().size() > 1){
                playListView.setVisibility(View.VISIBLE);
                return true;
            }else if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
                keyDownComboCount ++;
                //Log.d(TAG, "keyDownComboCount = " + keyDownComboCount);
            }
            break;
        case KeyEvent.KEYCODE_ENTER:
        case KeyEvent.KEYCODE_DPAD_CENTER:
            doPauseResume();
            show(defaultTimeout);
            return true;
    }
    return super.onKeyDown(keyCode, event);
}
 
源代码16 项目: opensudoku   文件: SudokuBoardView.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (!mReadonly) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_UP:
                return moveCellSelection(0, -1);
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                return moveCellSelection(1, 0);
            case KeyEvent.KEYCODE_DPAD_DOWN:
                return moveCellSelection(0, 1);
            case KeyEvent.KEYCODE_DPAD_LEFT:
                return moveCellSelection(-1, 0);
            case KeyEvent.KEYCODE_0:
            case KeyEvent.KEYCODE_SPACE:
            case KeyEvent.KEYCODE_DEL:
                // clear value in selected cell
                // TODO: I'm not really sure that this is thread-safe
                if (mSelectedCell != null) {
                    if (event.isShiftPressed() || event.isAltPressed()) {
                        setCellNote(mSelectedCell, CellNote.EMPTY);
                    } else {
                        setCellValue(mSelectedCell, 0);
                        moveCellSelectionRight();
                    }
                }
                return true;
            case KeyEvent.KEYCODE_DPAD_CENTER:
                if (mSelectedCell != null) {
                    onCellTapped(mSelectedCell);
                }
                return true;
        }

        if (keyCode >= KeyEvent.KEYCODE_1 && keyCode <= KeyEvent.KEYCODE_9 && mSelectedCell != null) {
            int selNumber = keyCode - KeyEvent.KEYCODE_0;
            Cell cell = mSelectedCell;

            if (event.isShiftPressed() || event.isAltPressed()) {
                // add or remove number in cell's note
                setCellNote(cell, cell.getNote().toggleNumber(selNumber));
            } else {
                // enter number in cell
                setCellValue(cell, selNumber);
                moveCellSelectionRight();
            }
            return true;
        }
    }


    return false;
}
 

/**
 * You can call this function yourself to have the scroll view perform
 * scrolling from a key event, just as if the event had been dispatched to
 * it by the view hierarchy.
 *
 * @param event The key event to execute.
 * @return Return true if the event was handled, else false.
 */
public boolean executeKeyEvent(KeyEvent event) {
    mTempRect.setEmpty();

    if (!canScroll()) {
        if (isFocused() && event.getKeyCode() != KeyEvent.KEYCODE_BACK) {
            View currentFocused = findFocus();
            if (currentFocused == this) currentFocused = null;
            View nextFocused = FocusFinder.getInstance().findNextFocus(this,
                    currentFocused, View.FOCUS_DOWN);
            return nextFocused != null
                    && nextFocused != this
                    && nextFocused.requestFocus(View.FOCUS_DOWN);
        }
        return false;
    }

    boolean handled = false;
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_UP:
                if (!event.isAltPressed()) {
                    handled = arrowScroll(View.FOCUS_UP);
                } else {
                    handled = fullScroll(View.FOCUS_UP);
                }
                break;
            case KeyEvent.KEYCODE_DPAD_DOWN:
                if (!event.isAltPressed()) {
                    handled = arrowScroll(View.FOCUS_DOWN);
                } else {
                    handled = fullScroll(View.FOCUS_DOWN);
                }
                break;
            case KeyEvent.KEYCODE_SPACE:
                pageScroll(event.isShiftPressed() ? View.FOCUS_UP : View.FOCUS_DOWN);
                break;
        }
    }

    return handled;
}
 
源代码18 项目: starcor.xul   文件: XulLabelRender.java

@Override
public boolean onKeyEvent(KeyEvent event) {
	XulMarqueeTextRenderer textRenderer = _textRenderer;
	if (textRenderer == null) {
		return false;
	}
	if (textRenderer.isMultiline() && !(textRenderer.isAutoWrap() && textRenderer.isDrawingEllipsis())) {
		int scrollLines = 3;
		// 处理滚动事件
		int viewHeight = XulUtils.calRectHeight(_rect) - _padding.top - _padding.bottom;
		float textHeight = textRenderer.getHeight();
		float lineHeight = textRenderer.getLineHeight();
		if (textHeight > viewHeight && event.getAction() == KeyEvent.ACTION_DOWN) {
			int maxMumScrollStep = (int) (viewHeight / lineHeight - 1);
			if (maxMumScrollStep <= 0) {
				maxMumScrollStep = 1;
			}
			if (scrollLines > maxMumScrollStep) {
				scrollLines = maxMumScrollStep;
			}
			float scrollDelta = lineHeight * scrollLines;
			switch (event.getKeyCode()) {
			case KeyEvent.KEYCODE_DPAD_UP:
				if (_scrollTargetY < 0) {
					_scrollTargetY += scrollDelta;
					_scrollTargetY -= (_scrollTargetY % lineHeight);
					if (_scrollTargetY > 0) {
						_scrollTargetY = 0;
					}
					if (_scrollBar != null) {
						_scrollBar.reset();
					}
					markDirtyView();
					return true;
				}
				break;
			case KeyEvent.KEYCODE_DPAD_DOWN:
				int minScrollYPos = (int) (viewHeight - textHeight);
				if (_scrollTargetY > minScrollYPos) {
					_scrollTargetY -= scrollDelta;
					if (_scrollTargetY < minScrollYPos) {
						_scrollTargetY = minScrollYPos;
					}
					if (_scrollBar != null) {
						_scrollBar.reset();
					}
					markDirtyView();
					return true;
				}
				break;
			}
		}
	}
	return false;
}
 
源代码19 项目: recent-images   文件: TwoWayGridView.java

private boolean commonKey(int keyCode, int count, KeyEvent event) {
	if (mAdapter == null) {
		return false;
	}

	if (mDataChanged) {
		layoutChildren();
	}

	boolean handled = false;
	int action = event.getAction();

	if (action != KeyEvent.ACTION_UP) {
		if (mSelectedPosition < 0) {
			switch (keyCode) {
			case KeyEvent.KEYCODE_DPAD_UP:
			case KeyEvent.KEYCODE_DPAD_DOWN:
			case KeyEvent.KEYCODE_DPAD_LEFT:
			case KeyEvent.KEYCODE_DPAD_RIGHT:
			case KeyEvent.KEYCODE_DPAD_CENTER:
			case KeyEvent.KEYCODE_SPACE:
			case KeyEvent.KEYCODE_ENTER:
				resurrectSelection();
				return true;
			}
		}

		switch (keyCode) {
		case KeyEvent.KEYCODE_DPAD_LEFT:
			if (!event.isAltPressed()) {
				handled = mGridBuilder.arrowScroll(FOCUS_LEFT);
			} else {
				handled = fullScroll(FOCUS_UP);
			}
			break;

		case KeyEvent.KEYCODE_DPAD_RIGHT:
			if (!event.isAltPressed()) {
				handled = mGridBuilder.arrowScroll(FOCUS_RIGHT);
			} else {
				handled = fullScroll(FOCUS_DOWN);
			}
			break;

		case KeyEvent.KEYCODE_DPAD_UP:
			if (!event.isAltPressed()) {
				handled = mGridBuilder.arrowScroll(FOCUS_UP);

			} else {
				handled = fullScroll(FOCUS_UP);
			}
			break;

		case KeyEvent.KEYCODE_DPAD_DOWN:
			if (!event.isAltPressed()) {
				handled = mGridBuilder.arrowScroll(FOCUS_DOWN);
			} else {
				handled = fullScroll(FOCUS_DOWN);
			}
			break;

		case KeyEvent.KEYCODE_DPAD_CENTER:
		case KeyEvent.KEYCODE_ENTER: {
			if (getChildCount() > 0 && event.getRepeatCount() == 0) {
				keyPressed();
			}

			return true;
		}

		case KeyEvent.KEYCODE_SPACE:
			//if (mPopup == null || !mPopup.isShowing()) {
			if (!event.isShiftPressed()) {
				handled = pageScroll(FOCUS_DOWN);
			} else {
				handled = pageScroll(FOCUS_UP);
			}
			//}
			break;
		}
	}

	//if (!handled) {
	//    handled = sendToTextFilter(keyCode, count, event);
	//}

	if (handled) {
		return true;
	} else {
		switch (action) {
		case KeyEvent.ACTION_DOWN:
			return super.onKeyDown(keyCode, event);
		case KeyEvent.ACTION_UP:
			return super.onKeyUp(keyCode, event);
		case KeyEvent.ACTION_MULTIPLE:
			return super.onKeyMultiple(keyCode, count, event);
		default:
			return false;
		}
	}
}
 
源代码20 项目: EhViewer   文件: GalleryActivity.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (mGalleryView == null) {
        return super.onKeyDown(keyCode, event);
    }

    // Check volume
    if (Settings.getVolumePage()) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
            if (mLayoutMode == GalleryView.LAYOUT_RIGHT_TO_LEFT) {
                mGalleryView.pageRight();
            } else {
                mGalleryView.pageLeft();
            }
            return true;
        } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
            if (mLayoutMode == GalleryView.LAYOUT_RIGHT_TO_LEFT) {
                mGalleryView.pageLeft();
            } else {
                mGalleryView.pageRight();
            }
            return true;
        }
    }

    // Check keyboard and Dpad
    switch (keyCode) {
        case KeyEvent.KEYCODE_PAGE_UP:
        case KeyEvent.KEYCODE_DPAD_UP:
            if (mLayoutMode == GalleryView.LAYOUT_RIGHT_TO_LEFT) {
                mGalleryView.pageRight();
            } else {
                mGalleryView.pageLeft();
            }
            return true;
        case KeyEvent.KEYCODE_DPAD_LEFT:
            mGalleryView.pageLeft();
            return true;
        case KeyEvent.KEYCODE_PAGE_DOWN:
        case KeyEvent.KEYCODE_DPAD_DOWN:
            if (mLayoutMode == GalleryView.LAYOUT_RIGHT_TO_LEFT) {
                mGalleryView.pageLeft();
            } else {
                mGalleryView.pageRight();
            }
            return true;
        case KeyEvent.KEYCODE_DPAD_RIGHT:
            mGalleryView.pageRight();
            return true;
        case KeyEvent.KEYCODE_DPAD_CENTER:
        case KeyEvent.KEYCODE_SPACE:
        case KeyEvent.KEYCODE_MENU:
            onTapMenuArea();
            return true;
    }

    return super.onKeyDown(keyCode, event);
}
 
 方法所在类
 同类方法