相关疑难解决方法(0)

网格布局上的手势检测

我想fling在我的Android应用程序中运行手势检测.

我拥有的是GridLayout包含9 ImageView秒的内容.源代码可以在这里找到:Romain Guys的网格布局.

我拿的那个文件来自Romain Guy的Photostream应用程序,并且只是略微适应了.

对于简单的点击情况,我只需要onClickListenerImageView我添加的每一个设置为activity实现的主要部分View.OnClickListener.实现识别a的东西似乎无比复杂fling.我认为这是因为它可能跨越views

  • 如果我的活动实现, OnGestureListener我不知道如何将其设置为我添加GridImage视图或视图的手势监听器.

    public class SelectFilterActivity extends Activity implements
       View.OnClickListener, OnGestureListener { ...
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果我的活动实现, OnTouchListener那么我没有 onFling方法override(它有两个事件作为参数,允许我确定是否值得注意).

    public class SelectFilterActivity extends Activity implements
        View.OnClickListener, OnTouchListener { ...
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果我做了一个自定义View,就像GestureImageView那个扩展ImageView我不知道如何告诉活动fling从视图中发生了.无论如何,我试过这个,当我触摸屏幕时没有调用方法.

我真的只需要一个跨视图的具体例子.什么,何时以及如何附上这个listener?我还需要能够检测单击.

// Gesture detection
mGestureDetector = new …
Run Code Online (Sandbox Code Playgroud)

android listener gesture-recognition

1076
推荐指数
16
解决办法
40万
查看次数

用于地图片段的双击缩放功能

我这样做是为了MapView类之前,这是非常简单的czuse有像预定义的方法onInterceptTouchEventGestureListeners等.

有没有人在地图片段中尝试这种双击或双击缩放功能.我谷歌但仍然无法找到任何解决方案.

我只是通过添加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 …
Run Code Online (Sandbox Code Playgroud)

java android android-maps-v2

10
推荐指数
1
解决办法
315
查看次数

双击/点击地图缩放(Android)

可能重复:
双击 - >放大Android MapView?

我有一个Activity延伸MapActivity.我使用谷歌地图.
我需要通过双击或双击来放大.

有人可以帮我弄这个吗?

我已经看过下面的内容,但它们并不是我想要的.

双击 - >放大Android MapView?

网格布局上的手势检测

我意识到onTouchListener这只被召唤一次,为什么会这样?

// set Gesture
detector = new GestureDetector(new GestureReactor());
mapView.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        System.out.println("Inside onTouch");
        return detector.onTouchEvent(event);
    }
});
Run Code Online (Sandbox Code Playgroud)

我有私人课程:

private class GestureReactor extends SimpleOnGestureListener {
    @Override
    public boolean onDoubleTap(MotionEvent e) {
        System.out.println("inside onDouble");
        controller.zoomInFixing((int) e.getX(), (int) e.getY());
        return super.onDoubleTap(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

private GestureDetector detector;
Run Code Online (Sandbox Code Playgroud)

android google-maps

5
推荐指数
1
解决办法
1万
查看次数