1

下の画像 ( PolarisImageButtonから) では、の右上に「場所」が表示されていMapViewます。

カスタムのもの(ImageView)を取得し、そのクリックを自分で処理します。

現時点では、ユーザーがマップをドラッグしてから (ドラッグ中に) 検索ボタンをクリックすると、マップの移動が停止するまで何も実行されません。

私が達成したいのは、マップのスクロールを停止することです。

これが私が試したことです(thx to blazzerbg):mMap.getController().stopAnimation(false); しかし、うまくいきません。

私はそれらの機能を持っていることを知っています、多分それらは干渉しますか?

@Override
public boolean onTouch(View view, MotionEvent event) {
    // Disables multi-touch (zoom in/out)
    if (event.getPointerCount() > 1) {
        return true;
    }

    // Get the map if a drag is done
    if (event.getAction() == MotionEvent.ACTION_UP) {
        // ...
    }

    // Disables double-tap
    return mGestureDetector.onTouchEvent(event);
}

private class GestureListener extends GestureDetector.SimpleOnGestureListener {

    @Override
    public boolean onDoubleTap(MotionEvent event) {
        return true;
    }
}

私だけじゃないみたい…

4

2 に答える 2

0

MapController にメソッドがあります

public void stopAnimation(boolean jumpToFinish)

ドキュメンテーション

于 2012-10-31T15:09:10.040 に答える
0

いつでもユーザー追跡ボタンを無効にすることができます: そのような方法があります:

 /**
     * Enable/disable user tracking on this {@link PolarisMapView}.
     * 
     * @param enabled True if user tracking is enabled, false otherwise.
     */
    public void setUserTrackingButtonEnabled(boolean enabled) {

このメソッドは、ユーザーの位置に基づいてビューを中央に配置するためのリスナーをアタッチします。

private final OnClickListener mOnUserTrackingButtonClickListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            MapViewUtils.smoothCenterOnUserLocation(PolarisMapView.this, mMyLocationOverlay, R.string.polaris__unable_to_locate_you);
        }
    };
于 2012-10-31T15:38:47.897 に答える