5

MapView を保持するフラグメントがあります。このビューを次のように XML ファイルに追加しました。

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    map:uiCompass="true"
    android:background="#00000000" />

そして、次のようにコードにリンクしました。

public class HotSpotsFragment extends MainFragment implements LocationListener {

    private static final String TAG = "HotSpotsFragment";
    private Context context;
    private LocationManager locationManager;
    private MapView mapView;
    private GoogleMap googleMap;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        // create view
        View view = inflater.inflate(R.layout.fragment_hot_spots, container, false);

        // Getting context
        context = getActivity().getApplicationContext();

        // Make sure user's device supports Google play services
        try {
            MapsInitializer.initialize(getActivity());
        } catch (GooglePlayServicesNotAvailableException e) {
            Log.e(TAG, "Google play service is not available.");
            Toast.makeText(getActivity().getApplicationContext(), R.string.hot_spots_not_supported, Toast.LENGTH_LONG).show();
            return null;
        }

        Log.i(TAG, "Google play service is available.");

        mapView = (MapView) view.findViewById(R.id.mapView);
        mapView.onCreate(savedInstanceState);

        googleMap = ((MapView) view.findViewById(R.id.mapView)).getMap();
        if(googleMap == null) {
            Toast.makeText(getActivity().getApplicationContext(), R.string.hot_spots_not_supported, Toast.LENGTH_LONG).show();
            return null;
        }

        Log.i(TAG, "View created");

        return view;
    }
.
.
.
}

マップ ビューにオプションを追加したいと考えています。GoogleMapOptionsで言及されていることに基づいて、「これらのオプションは、(XML 経由ではなく) プログラムでアプリケーションにマップを追加するときに使用できます。MapFragment を使用している場合は、静的ファクトリ メソッド newInstance を使用してこれらのオプションを渡すことができます。 (GoogleMapOptions)。MapView を使用している場合は、コンストラクタ MapView(Context, GoogleMapOptions) を使用してこれらのオプションを渡すことができます。最後に私の場合、「XML を使用してマップを追加する場合、カスタム XML タグを使用してこれらのオプションを適用できます。

XML を使用してオプションを追加する方法を示すサンプルは見つかりませんでした。XML コードに zOrderOnTop="true" を追加したいと考えています。

任意の提案をいただければ幸いです。ありがとう

4

1 に答える 1

6

と同じくらい簡単でした

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    map:uiCompass="true"
    map:zOrderOnTop="true"
    map:uiZoomControls="true"
    android:background="#00000000" />

ただし、追加map:zOrderOnTop="true"される新しい問題により、ZoomIn/ZoomOut などのオーバーレイ オブジェクトが画面から削除されます:( 詳細については、このリンクを参照してください。

于 2013-04-24T03:48:58.157 に答える