网站设计技巧,网站正在建设升级,wordpress 评论 重复,行业门户网站的优化怎么做yps行业门户系统在应用的程序的控制方面#xff0c;更多的使用的是屏幕上的控件#xff0c;但是有的时候也需要直接对键盘事件来进行响应。键盘是Android中主要的输入设备#xff0c;对按键的响应的处理是响应之间在程序中使用键盘的核心内容。本例需要实现的内容是通过键盘来控制屏幕上的一…在应用的程序的控制方面更多的使用的是屏幕上的控件但是有的时候也需要直接对键盘事件来进行响应。键盘是Android中主要的输入设备对按键的响应的处理是响应之间在程序中使用键盘的核心内容。本例需要实现的内容是通过键盘来控制屏幕上的一个图片的Alpha值使用上键和右键增加图片的Alpha值使用下键和左键减少图片的Alpha值。显示内容如下所示 本例的布局文件testkeyevent.xml如下所示LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:idid/screenandroid:layout_widthfill_parentandroid:layout_heightfill_parentandroid:orientationverticalTextView android:idid/alphavalueandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenter/ImageView android:idid/imageandroid:srcdrawable/robotandroid:layout_gravitycenterandroid:layout_widthwrap_contentandroid:layout_heightwrap_content //LinearLayout本例包含了一个文本框和一个显示图片的控件这样可以文本框用作显示当前的Alpha的比例值显示图片的控件ImageView用于显示一个图片。本例的源代码实现如下所示package com.android.basicapp;import android.app.Activity;import android.content.Context;import android.graphics.*;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.widget.TextView;import android.widget.ImageView;public class TestKeyEvent extends Activity {private static final String TAG TestKeyEvent;private ImageView mImage;private TextView mAlphavalueText;private int mAlphavalue;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.testkeyevent);mImage (ImageView) findViewById(R.id.image);mAlphavalueText (TextView) findViewById(R.id.alphavalue);mAlphavalue 100; mImage.setAlpha(mAlphavalue);mAlphavalueText.setText(Alpha mAlphavalue*100/0xff %);}Overridepublic boolean onKeyDown(int keyCode, KeyEvent msg){Log.v(TAG, onKeyDown: keyCode keyCode);Log.v(TAG, onKeyDown: String msg.toString());switch (keyCode) {case KeyEvent.KEYCODE_DPAD_UP:case KeyEvent.KEYCODE_DPAD_RIGHT:mAlphavalue 20;break;case KeyEvent.KEYCODE_DPAD_DOWN:case KeyEvent.KEYCODE_DPAD_LEFT:mAlphavalue - 20;break;default:break;}if(mAlphavalue0xFF)mAlphavalue 0xFF;if(mAlphavalue0x0)mAlphavalue 0x0;mImage.setAlpha(mAlphavalue);mAlphavalueText.setText(Alpha mAlphavalue*100/0xff %);return super.onKeyDown(keyCode, msg);}}本例子使用onKeyDown()函数来获得按键的事件同类的函数还包括onKeyUp()函数其参数int keyCode为按键码KeyEvent msg表示按键事件的消息其中包含了更详细的内容。上面打出的log信息为VERBOSE/TestKeyEvent(771): onKeyDown: keyCode 20VERBOSE/TestKeyEvent(771): onKeyDown: String KeyEvent{action0 code20 repeat0 meta0 scancode108 mFlags8}基本上通过keyCode可以获得是哪一个按键响应而通过msg除了按键码之外可以获得按键的动作抬起、按下、重复信息扫描码等内容。KeyEvent主要包含以下一些接口final int getAction() // 获得按键的动作final int getFlags() // 获得标志final int getKeyCode() // 获得按键码final int getRepeatCount() // 获得重复的信息final int getScanCode() // 获得扫描码通过KeyEvent接口可以获得按键相关的详细信息。转载于:https://www.cnblogs.com/ruiati/p/3314233.html