我如何使用MapStateListener?

时间:2014-10-18 09:35:32

标签: android google-maps

我的Android应用程序使用Google MAP API V2。 我想使用此解决方案在地图上处理触摸,拖动和触摸事件:https://github.com/MadsFrandsen/MapStateListener

但我无法从视图中引用TouchableMapFragment对象来创建MapStateListener。

我是Android的新手,所以请帮我实施此解决方案或其他解决方案来解决我的问题。 谢谢,

这是我的布局:

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:name="megacom.taxigo.driver.android.utils.mapstatelistener.TouchableMapFragment"/>

1 个答案:

答案 0 :(得分:0)

使用TouchableMapFragment应该非常简单。我们假设您有一个名为map.xml的简单布局文件,例如:

<fragment android:id="@+id/map" 
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:name="megacom.taxigo.driver.android.utils.mapstatelistener.TouchableMapF‌​ragment"/>

现在,在您的活动中,您需要做的就是以下内容;

public void onCreate(Context context) {
    setContentView(R.layout.map);

    TouchableMapFragment touchableMapFragment = (TouchableMapFragment) getFragmentManager().findById(R.id.map);
    GoogleMap map = touchableMapFragment.getMap();
    new MyMapStateListener(map, touchableMapFragment, this) {
        @Override
        public void onMapTouched() {
            // Map touched
        }

        @Override
        public void onMapReleased() {
            // Map released
        }

        @Override
        public void onMapUnsettled() {
            // Map unsettled
        }

        @Override
        public void onMapSettled() {
            // Map settled
        }
    };
}

使用MapFragment getMap()方法时需要注意的事项如果片段尚未完成初始化,则可以返回null。