Android键盘事件处理

1:通过重写onKeyDown事件,对应KeyEvent中按钮,对部分按钮进行事件处理,本例中上键增加图片的Alpha值,下键减少图片的Alpha值,

2:本例子使用onKeyDown()函数来获得按键的事件,同类的函数还包括onKeyUp()函数

/**
     * 初始化资源文件
     *
     * @param
     * @return void
     * @throws
     * @since TianTian
     */
    private void initResource()
    {
        alpha_image = (ImageView) findViewById(R.id.alpha_image);
       
        alpha_value = (TextView) findViewById(R.id.alpha_value);
       
        alpha = 100;
       
        alpha_image.setAlpha(alpha);
       
        alpha_value.setText("alpha:" + alpha + "%");
    }

/**
     * 按键控制
     *
     * @param keyCode为按键码,msg表示按键事件的消息
     * @return void
     * @throws
     * @since TianTian
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        switch (keyCode)
        {
            case KeyEvent.KEYCODE_DPAD_UP:
                 alpha += 10;
                break;
               
            case KeyEvent.KEYCODE_DPAD_DOWN:
                 alpha -= 10;
                break;
               
            case KeyEvent.KEYCODE_DPAD_LEFT:
               
                break;
               
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                break;
           
            default:
                break;
        }
       
        if (alpha > 100)
        {
            alpha = 100;
        }
        else if (alpha < 0)
        {
            alpha = 0;
        }
       
        alpha_image.setAlpha(alpha);
        alpha_value.setText("alpha:" + alpha + "%");
       
        return super.onKeyDown(keyCode, event);
    }

引申:
基本上通过keyCode可以获得是哪一个按键响应,而通过msg除了按键码之外,可以获得按键的动作(抬起、按下)、重复信息,扫描码等内容。
KeyEvent主要包含以下一些接口:
final int getAction() // 获得按键的动作
final int getFlags() // 获得标志
final int getKeyCode() // 获得按键码
final int getRepeatCount() // 获得重复的信息
final int getScanCode() // 获得扫描码
通过KeyEvent接口,可以获得按键相关的详细信息。

猜你喜欢

转载自mickey-hou.iteye.com/blog/1617273