android处理鼠标滚轮事件,并不是如下函数:
1) public boolean onKeyDown(int keyCode, KeyEvent event)
2) public boolean dispatchKeyEvent(KeyEvent event)
3) public boolean onTouchEvent(MotionEvent event)而是如下函数
publicboolean onGenericMotionEvent(MotionEvent event);
所有View和Activity都可重写该函数,来自己处理滚轮事件,
如下代码:
/** * Implement this method to handle generic motion events. * 实现该方法来处理一般的MotionEvent; * 一般的motion events 描述,操纵杆的动作,鼠标honver、滚轮等 * * @param event The generic motion event being processed. * @return True if the event was handled, false otherwise. */ @Override public boolean onGenericMotionEvent(MotionEvent event) { //The input source is a pointing device associated with a display. //输入源为可现实的指针设备,如:mouse pointing device(鼠标指针),stylus pointing device(尖笔设备) if (0 != (event.getSource() & InputDevice.SOURCE_CLASS_POINTER)) { switch (event.getAction()) { // process the scroll wheel movement...处理滚轮事件 case MotionEvent.ACTION_SCROLL: Log.e("fortest::onGenericMotionEvent", "MotionEvent.ACTION_SCROLL" ); //获得垂直坐标上的滚动方向,也就是滚轮向下滚 if( event.getAxisValue(MotionEvent.AXIS_VSCROLL) < 0.0f){ Log.i("fortest::onGenericMotionEvent", "down" ); } //获得垂直坐标上的滚动方向,也就是滚轮向上滚 else{ Log.i("fortest::onGenericMotionEvent", "up" ); } return true; } } return super.onGenericMotionEvent(event); }
转载请注明出处,jiese1990。