关于 android 中的MapView 双击事件的问题?
2010-07-03 17:45
507 查看
我在做的程序的时候,遇到这样的一个问题,就是,双击mapView响应事件,后来试了很多方法,后来终于成功了!
这是我从网上搜集的一些资料。如下:
touch与多个mapview 的属性及返回值的总结
根据以上调查结果得出结论
onTouch函数的返回值直接影响着onTouch函数响应情况,mapview和onTouch函数响应互斥,与setClickable setEnabled无关
决定使用dispatchTouchEvent函数,下面是我重写的dispatchTouch方法,主要功能是,双击mapView能自动放大地图。以供大家参考!
首先这个实例只能用在4.0以上版本
你想点击任意一点获得坐标不能用onTouchEvent,而只能用dispatchTouchEvent 因为“MapActivity 继承了 the dispatchTouch Event 而不是OnTouchEvent ”
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
int actionType=ev.getAction();
switch(actionType){
case MotionEvent.ACTION_DOWN:
count++;
if(count==1){
firClick=System.currentTimeMillis();
}else if(count==2){
//Toast.makeText(ActivityMain.this, "aaa", Toast.LENGTH_SHORT).show();
secClick=System.currentTimeMillis();
System.out.println("sec:"+secClick);
System.out.println("first:"+firClick);
distanceTime=secClick-firClick;
System.out.println("distanceTime:"+distanceTime);
if(distanceTime>1 && distanceTime<1000){
Toast.makeText(ActivityMain.this, "aaa", Toast.LENGTH_SHORT).show();
intZoomLevel++;
if (intZoomLevel > mMapView01.getMaxZoomLevel()) {
intZoomLevel = mMapView01.getMaxZoomLevel();
}
mMapController01.setZoom(intZoomLevel);
}
firClick=0;
secClick=0;
count=0;
}
}
return super.dispatchTouchEvent(ev);
}
这是我从网上搜集的一些资料。如下:
touch与多个mapview 的属性及返回值的总结
序号 | setClickable | setEnabled | onTouch函数 返回值 | 结果 |
1 | 默认 | 默认 | false | 仅响应第一次,mapview正常响应 |
2 | 默认 | 默认 | true | 每次都响应,mapview不能正常响应 |
3 | true | true | false | 仅响应第一次,mapview正常响应 |
4 | true | true | true | 每次都响应,mapview不能正常响应 |
onTouch函数的返回值直接影响着onTouch函数响应情况,mapview和onTouch函数响应互斥,与setClickable setEnabled无关
决定使用dispatchTouchEvent函数,下面是我重写的dispatchTouch方法,主要功能是,双击mapView能自动放大地图。以供大家参考!
首先这个实例只能用在4.0以上版本
你想点击任意一点获得坐标不能用onTouchEvent,而只能用dispatchTouchEvent 因为“MapActivity 继承了 the dispatchTouch Event 而不是OnTouchEvent ”
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
int actionType=ev.getAction();
switch(actionType){
case MotionEvent.ACTION_DOWN:
count++;
if(count==1){
firClick=System.currentTimeMillis();
}else if(count==2){
//Toast.makeText(ActivityMain.this, "aaa", Toast.LENGTH_SHORT).show();
secClick=System.currentTimeMillis();
System.out.println("sec:"+secClick);
System.out.println("first:"+firClick);
distanceTime=secClick-firClick;
System.out.println("distanceTime:"+distanceTime);
if(distanceTime>1 && distanceTime<1000){
Toast.makeText(ActivityMain.this, "aaa", Toast.LENGTH_SHORT).show();
intZoomLevel++;
if (intZoomLevel > mMapView01.getMaxZoomLevel()) {
intZoomLevel = mMapView01.getMaxZoomLevel();
}
mMapController01.setZoom(intZoomLevel);
}
firClick=0;
secClick=0;
count=0;
}
}
return super.dispatchTouchEvent(ev);
}
相关文章推荐
- Android上关于view的事件问题
- 关于Android.widget.Button cannot be cast to com.esri.android.map.MapView错误的问题
- 关于android中,菜单按钮点击事件首次执行之后再次执行需要双击按钮的问题
- arcgis for android 学习 - (4) 了解mapView的一些方法和事件
- 关于在NavigatorView中双击打开编辑器的问题
- 关于android 的onTouch 事件失效问题
- Android开发googleMap+GPS定位中的关于Criteria一知半解问题
- Android开发googleMap+GPS定位中的关于Criteria一知半解问题
- Android:关于Viewpager中的Fragment 滑动时保存状态的问题
- 解决android中HorizontalScrollView的滚动事件与组件的Touch冲突问题 --- 修正版
- Android中关于ImageView网络获取的图片的缩放问题
- ios 关于 通过加载 xib 生成的view,调用 addsubviews,sub view的按钮 不相应点击事件的 问题
- android 关于TextView getLineCount() 获得的值始终为0问题
- 关于android软键盘弹出挤压VIEW和覆盖View的问题
- 关于android 动态设置view 样式 问题(默认style)
- Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题
- Android 自定义View实现单击和双击事件的方法
- 关于导入 cardview 库 ?android:attr/colorBackgroundFloating 报错的问题
- android MapView 定位与Overlay onTap事件处理
- [Android] 关于WebView的内存泄露问题