Ran*_*jit 10 java android android-maps-v2
我这样做是为了MapView类之前,这是非常简单的czuse有像预定义的方法onInterceptTouchEvent或GestureListeners等.
有没有人在地图片段中尝试这种双击或双击缩放功能.我谷歌但仍然无法找到任何解决方案.
我只是通过添加UiSettings来启动它 getMap().getUiSettings().setZoomGesturesEnabled(true);
是否可以通过帮助实现setOnMapClickListener()地图片段的双击事件处理手势?
注意:这个问题纯粹是关于MapFragment并且与已经回答的MapView无关的问题双击:放大Android MapView?
编辑 我在布局中使用的MapFragment:
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/noItemsText"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:addStatesFromChildren="true"
android:background="@android:color/transparent"
android:gravity="center">
<ListView
android:id="@+id/storesListView"
style="@style/Fill"
android:background="@android:color/transparent"
android:cacheColorHint="#00000000" />
<fragment
android:id="@+id/mapview"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ViewFlipper>
Run Code Online (Sandbox Code Playgroud)
该类是一个控制器,它正在为Activity扩展Activity而不是AppCompactActivity.
我还在地图中添加了标记聚类.
班级方面:
public class StoreFinderController extends BeeonicsControllerBase implements OnMapReadyCallback,
ClusterManager.OnClusterItemInfoWindowClickListener<AllClusterItems>,ClusterManager.OnClusterClickListener<AllClusterItems> {
Run Code Online (Sandbox Code Playgroud)
onMapReady:
@Override
public void onMapReady(GoogleMap googleMap) {
/*better to work with our map :)*/
this.googleMap = googleMap;
mClusterManager = new CustomClusterManager<AllClusterItems>(getActivity(), getMap());
getMap().setOnCameraIdleListener(mClusterManager);
getMap().setOnInfoWindowClickListener(mClusterManager);
getMap().setOnMarkerClickListener(mClusterManager);
mClusterManager.setOnClusterItemInfoWindowClickListener(this);
mClusterManager.setOnClusterClickListener(this);
/*map additional settings*/
setUpMap();
//setUpGoogleMap();
//readItems();
}
Run Code Online (Sandbox Code Playgroud)
在setUpMap中,我只是在对象之间传输一些数据.
我尝试了这里和这里的所有可能的解决方案,其中他们提供了一些其他方法来借助触摸事件来处理双击。但不幸的是,没有什么对我有用。
因此,我以预定义的方式结束onMapClickListener(),只需单击一下地图即可。我将我的解决方案粘贴在下面:
getMap().setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
getMap().animateCamera(CameraUpdateFactory.zoomIn());
}
});
Run Code Online (Sandbox Code Playgroud)
不管怎样,感谢卡兰·梅尔的帮助。
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |