在Android中使用Google Maps v2时遇到问题。我想将MapView作为布局的一部分。我能够将MapView与标记一起使用,但是瓷砖本身不会加载,除非我点击地图。对于我做的每次点击,都会绘制一个额外的图块(因此需要4或5次点击才能获得整个地图)。
我正在使用Maps V2,但在这种特殊情况下,不是在片段中。作为一个注释,地图在我正在使用MapFragment的另一个地方工作正常。
以下是代码的重要摘要:
活动片段:
public class ViewNodeDetailsGame extends MapActivity implements View.OnClickListener, OnMapReadyCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBundle = savedInstanceState;
setContentView(R.layout.activity_view_node_details_game);
// Maps related
MapsInitializer.initialize(this);
// ... the data is fetched asynchronously here. Then, getLocation() is called
}
private void getLocation(final LinearLayout llLocation) {
mMapView = (MapView)llLocation.findViewById(R.id.map);
mMapView.onCreate(mBundle);
mMapView.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
LatLng sydney = new LatLng(-34, 151);
map.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.animateCamera(CameraUpdateFactory.newLatLng(sydney));
map.getUiSettings().setMyLocationButtonEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
map.getUiSettings().setCompassEnabled(true);
map.getUiSettings().setAllGesturesEnabled(true);
}
@Override
public void onResume() {
super.onResume();
if (mMapView != null) {
mMapView.onResume();
}
}
@Override
public void onPause() {
super.onPause();
if (mMapView != null) {
mMapView.onPause();
}
}
@Override
public void onLowMemory() {
super.onLowMemory();
if (mMapView != null) {
mMapView.onLowMemory();
}
}
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
if (mMapView != null) {
mMapView.onSaveInstanceState(outState);
}
}
@Override
public void onDestroy() {
super.onDestoy();
if (mMapView != null) {
mMapView.onDestroy();
}
}
布局的片段。以编程方式添加此布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:padding="5dp"
android:orientation="vertical">
<com.google.android.gms.maps.MapView
android:id="@+id/map"
android:clickable="true"
android:enabled="true"
android:layout_width="match_parent"
android:layout_height="250dp" />
<!-- More stuff below -->
我将我的API_KEY包含在AndroidManifest.xml文件中:
<!-- lots of stuff above this... -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIza --rest of my key here--"
/>
</application>
以下图片显示了每次点击我得到的瓷砖绘画的进展情况。任何提示都表示赞赏。
答案 0 :(得分:0)
因为你不打电话 活动&#39 onResume()回调中的mMapView.onResume()。