android hover监控鼠标移动事件
2013-07-09 12:24
726 查看
android之前对于鼠标光标事件的监控非常少,4.0之后多了一个hover的组件,此组件可以监控鼠标光标在view上的变化。
代码如下:public class HoverDemoActivity extends Activity {
private Button btnBottom;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnBottom = (Button) findViewById(R.id.btn_bottom);
btnBottom.setOnHoverListener(new OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
int what = event.getAction();
switch(what){
case MotionEvent.ACTION_HOVER_ENTER: //鼠标进入view
System.out.println("bottom ACTION_HOVER_ENTER");
break;
case MotionEvent.ACTION_HOVER_MOVE: //鼠标在view上
System.out.println("bottom ACTION_HOVER_MOVE");
break;
case MotionEvent.ACTION_HOVER_EXIT: //鼠标离开view
System.out.println("bottom ACTION_HOVER_EXIT");
break;
}
return false;
}
});
}
}
当view隐藏时,无法监控点击,触摸和hover事件。
以上来源于http://blog.csdn.net/zhudaozhuan/article/details/7249538
下面做点补充:listview焦点跟随鼠标移动
在重载BaseAdapter的适配器中的getView方法中对行视图进行hover监听,
代码如下:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ListItemViewHolder holder = null; // 清空临时变量
if (convertView == null) {
// 若行未初始化
convertView = layoutInflater.inflate(R.layout.radio_selection_mode_list_item, null); // 通过flater初始化行视图
convertView.setOnHoverListener(new MyOnHoverListener());
holder = new ListItemViewHolder(); // 并将行视图的3个子视图引用放到tag中
//......
convertView.setTag(holder);
} else {
holder = (ListItemViewHolder) convertView.getTag(); // 若行已初始化,直接从tag属性获得子视图的引用
}
//......
return convertView;
}
class MyOnHoverListener implements OnHoverListener{
@Override
public boolean onHover(View arg0, MotionEvent event) {
// TODO Auto-generated method stub
int what = event.getAction();
switch(what){
case MotionEvent.ACTION_HOVER_ENTER: //鼠标进入view
int pos = (int)arg0.getY() / 75;
Bundle mBundle = new Bundle();
mBundle.putInt("position", pos);
Message msg = new Message();
msg.what = FileBrowserActivity.MSG_MOUSE_MOVE;
msg.setData(mBundle);
fileBrowserActivity.activityHandler.sendMessage(msg);//可以刷新listview 设置焦点
break;
相关文章推荐
- android hover监控鼠标移动事件
- android hover监控鼠标移动事件
- Android基于hover组件实现监控鼠标移动事件的方法
- android hover监控鼠标移动事件
- android2.3 监控鼠标滑动事件
- android2.3 监控鼠标滑动事件(2)
- Android 百度地图 对鼠标点击、移动、抬起三个事件的监听
- android4.0 支持监控鼠标事件hover
- [python] 1、python鼠标点击、移动事件应用——写一个自动下载百度音乐的程序
- jQuery – 鼠标经过(hover)事件的延时处理
- js 鼠标 移动 事件 获取 id
- 用鼠标左击事件实现移动WinForm中控件
- JavaScript 将事件event作为参数传递,鼠标移动事件
- jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
- Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)
- 让Shockwave flash控件响应鼠标移动的事件
- CSS鼠标响应事件经过、移动、点击示例介绍
- Android 开源项目浅读-------SwipeMenuListView-重写-第一章-手指移动事件捕获
- OnMouseDown 等鼠标事件Android Webview 的事件处理
- CSS 鼠标响应事件,鼠标经过CSS,鼠标移动CSS,鼠标点击CSS