Android开发--事件的处理/按键按下,弹起,触摸事件等
16lz
2021-01-26
android中的事件类型分为按键事件和屏幕触摸事件
事件是我们在于UI交互式发生的,我们点击一个按键时,可能就已经除非好几个事件,例如我们点击数字键“0”,他会涉及到按下事件,和一个弹起(松开)事件,在我们android中还可能涉及到触摸屏事件,所以在android系统中,事件是作为常用的功能之一;
boolean onKeyDown(int keyCode,KeyEvent event) 用于在按键进行按下时发生
boolean onKeyUp(int keyCode,KeyEvent event) 用于在按键进行释放时发生
onTouchEvent(MotionEvent event)触摸屏事件,当在触摸屏上有动作时发生
事件是我们在于UI交互式发生的,我们点击一个按键时,可能就已经除非好几个事件,例如我们点击数字键“0”,他会涉及到按下事件,和一个弹起(松开)事件,在我们android中还可能涉及到触摸屏事件,所以在android系统中,事件是作为常用的功能之一;
在android下,事件的发生是在监听器下进行,android系统可以响应按键事件和触摸屏事件,事件说明如下:
onClick(View v) 一个普通的点击按钮事件
boolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event)用于在多个事件连续时发生,用于按键重复,必须重载实现boolean onKeyDown(int keyCode,KeyEvent event) 用于在按键进行按下时发生
boolean onKeyUp(int keyCode,KeyEvent event) 用于在按键进行释放时发生
onTouchEvent(MotionEvent event)触摸屏事件,当在触摸屏上有动作时发生
boolean onKeyLongPress(int keyCode, KeyEvent event)当你长时间按时发生
本实例实现上述的描述:
实现的截图如下:
实现的代码如下:
public class Touch_KEY_Listener_Activity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_touch__key__listener_);}//当按键按下时发生的事件@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stub switch(keyCode) { case KeyEvent.KEYCODE_0: DisplayToast("你按下数字键0"); break; case KeyEvent.KEYCODE_DPAD_CENTER: DisplayToast("你按下中间键"); break; case KeyEvent.KEYCODE_DPAD_DOWN: DisplayToast("你按下下方向键"); break; case KeyEvent.KEYCODE_DPAD_LEFT: DisplayToast("你按下左方向键"); break; case KeyEvent.KEYCODE_DPAD_RIGHT: DisplayToast("你按下右方向键"); break; case KeyEvent.KEYCODE_DPAD_UP: DisplayToast("你按下上方向键"); break; case KeyEvent.KEYCODE_ALT_LEFT: DisplayToast("你按下组合键alt+←"); break; }return super.onKeyDown(keyCode, event);} //当按键被松开时响应的事件@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {// TODO Auto-generated method stubswitch(keyCode) { case KeyEvent.KEYCODE_0: DisplayToast("松开数字键0"); break; case KeyEvent.KEYCODE_DPAD_CENTER: DisplayToast("松开中间键"); break; case KeyEvent.KEYCODE_DPAD_DOWN: DisplayToast("松开下方向键"); break; case KeyEvent.KEYCODE_DPAD_LEFT: DisplayToast("松开左方向键"); break; case KeyEvent.KEYCODE_DPAD_RIGHT: DisplayToast("松开右方向键"); break; case KeyEvent.KEYCODE_DPAD_UP: DisplayToast("松开上方向键"); break; case KeyEvent.KEYCODE_ALT_LEFT: DisplayToast("松开组合键alt+←"); break; }return super.onKeyUp(keyCode, event);}// 触摸屏事件,当用手或者用笔在触摸屏上做动作是发生@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubint iAction=event.getAction(); if(iAction==MotionEvent.ACTION_MOVE) { DisplayToast("你在触摸屏上进行了滑动"); } else { return false; }return super.onTouchEvent(event);}//连续点击按键时发生的事件@Overridepublic boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {// TODO Auto-generated method stubreturn super.onKeyMultiple(keyCode, repeatCount, event);}public void DisplayToast(String str) { Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_touch__key__listener_, menu);return true;}}
更多相关文章
- Android随笔随想-GUI-事件分发先导篇
- 调用Android自带日历功能
- Android(安卓)辅助功能服务AccessibilityService
- android surfaceview实现简易抓球游戏
- 事件处理机制之Gestures(手势)
- MVP那些事儿 (4) 在Android中使用MVC(下)
- Android(安卓)触屏事件 (单击,双击,滑动)
- 我在Android开发中遇到的坑之微博正文点击处理
- 源码阅读分析 - View的Touch事件分发