android 处理鼠标滚轮事件 【转】

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:
//获得垂直坐标上的滚动方向,也就是滚轮向下滚
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

posted on 2015-08-25 14:47  luob  阅读(1582)  评论(0编辑  收藏  举报