これはマニフェスト ファイルです
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="com.google.android.maps"/> <activity android:name=".MapTestActivity" android:label="@string/title_activity_map_test" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
これはxmlレイアウトファイルです
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <Button android:id="@+id/zoom_in" android:layout_width="37dp" android:layout_height="wrap_content" android:text="+" android:onClick="mapHandler" /> <Button android:id="@+id/zoom_out" android:layout_width="37dp" android:layout_height="wrap_content" android:text="-" android:onClick="mapHandler" /> <Button android:id="@+id/satelite" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Satelite" android:onClick="mapHandler" /> <Button android:id="@+id/traffic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Traffic" android:onClick="mapHandler" /> <Button android:id="@+id/norm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Normal" android:onClick="mapHandler" /> </LinearLayout> <com.google.android.maps.MapView android:id="@+id/map_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey="sorry for hiding app id" />
これはJavaファイルです
package com.example.maptest; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; import android.os.Bundle; import android.view.Menu; import android.view.View; public class MapTestActivity extends MapActivity { private MapView mapView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map_test); mapView = (MapView) findViewById(R.id.map_view); mapView.setBuiltInZoomControls(true); } public void mapHandler(View view) { switch(view.getId()){ case R.id.zoom_in: mapView.getController().zoomIn(); break; case R.id.zoom_out: mapView.getController().zoomOut(); break; case R.id.satelite: mapView.setSatellite(true); break; case R.id.traffic: mapView.setTraffic(true); break; case R.id.norm: mapView.setSatellite(false); mapView.setTraffic(false); break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_map_test, menu); return true; } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } }
出力では、ボタンのみが表示されます。私のインターネット接続も良好です
4 に答える
レイアウト xml 内に配置したマップ API キーは、アプリの署名に使用している証明書と一致していますか? Eclipse で実行する場合でも、証明書が使用されます。その証明書は API キーと一致する必要があります。そうでない場合、マップ ビューは機能しますが、実際にはマップ グラフィックスは表示されません。
たぶん、linearlayoutが画面全体をブロックしているのでしょう!?パラメータを次のように設定します。
android:layout_width="match_parent"
android:layout_height="match_parent"
したがって、親全体をブロックしている可能性があります。ボタンやリニアレイアウトなしで試してみませんか?たぶんあなたはこのチュートリアルに従うことができます:http ://www.javacodegeeks.com/2011/02/android-google-maps-tutorial.html
Open Street Maps でこの問題が発生しました。これを解決するには、SD カードをデバイス / エミュレーターに挿入する必要がありました。Google マップで同じことが必要かどうかはわかりません。
パーミッションを付与する必要がありますACCESS_MOCK_LOCATION
。そうしないと、アプリはあなたが送信したモックされた場所を受け入れません。また、アプリが場所を受け取るまでマップは表示されません。つまり、何らかのツール (Eclipse に統合されたツールなど) を使用して場所を入力する必要があります。