0

对于我的学校项目,我们必须使用适用于 Android 的 Google Maps API v2(使用 Eclipse ADT)。

我们正在创建一个应用程序,可在跑步或骑自行车锻炼期间跟踪您的位置。这意味着地图的片段只需离开屏幕 50%。因为我们想让我们的代码看起来干净整洁,所以我想创建一个单独的 .java 文件来存储 Google 地图片段的代码。

我们的“WORKOUT PAGE”名为 Workout.java 的 .java 类包含秒表代码和一些其他信息,并且已经是一个 FragmentActivity。

我将如何开始创建 GoogleMaps.java 文件(有或没有活动?)以及如何将其导入 Workout.java?

谢谢!

编辑:我可以在 Workout.java 中使用类似的东西吗?

GoogleMaps map = new GoogleMaps();

以后如何将其导入 Workout.java 中的 Fragment 中?

4

1 回答 1

0

您可以扩展 SupportMapFragment 并将您的地图相关逻辑放在那里(例如:标记管理)

public class CustomMapFragment extends SupportMapFragment {

private GoogleMap googleMap;
private List<Marker> markers = new ArrayList<Marker>();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = super.onCreateView(inflater, container, savedInstanceState);
    googleMap = getMap();
    ViewUtils.initializeMargin(getActivity(), view);
    return view;
}

private void addMarkerToMap(LatLng latLng) {
    Marker marker = googleMap.addMarker(new MarkerOptions().position(latLng)
             .title("title")
             .snippet("snippet"));
    markers.add(marker);

}

/**
 * Adds a list of markers to the map.
 */
public void addMarkersToMap(List<LatLng> latLngs) {
    for (LatLng latLng : latLngs) {
        addMarkerToMap(latLng);
    }
}

/**
 * Clears all markers from the map.
 */
public void clearMarkers() {
    googleMap.clear();
    markers.clear();        
}

}

然后,您可以在布局中添加该自定义 MapFragment(以及其他片段)

<fragment
    android:id="@+id/workout"
    android:name="com.foobar.WorkoutFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

<fragment
    android:id="@+id/map"
    android:name="com.foobar.CustomMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

这样,您就可以将纯地图相关代码与代码库的其余部分分开。

于 2013-06-16T15:12:35.580 回答