Android 在屏幕旋转之前缺少贴图覆盖
在这里,我可以获取并显示用户在地图上的当前位置,我可以检索并解析GooglePlacesJSON数据到数组中。问题是,尽管显示了当前位置覆盖,但在我将屏幕从纵向旋转到横向之前,其他覆盖不会显示。即使我将其旋转回“纵向”,它仍能正常工作Android 在屏幕旋转之前缺少贴图覆盖,android,android-mapview,overlays,Android,Android Mapview,Overlays,在这里,我可以获取并显示用户在地图上的当前位置,我可以检索并解析GooglePlacesJSON数据到数组中。问题是,尽管显示了当前位置覆盖,但在我将屏幕从纵向旋转到横向之前,其他覆盖不会显示。即使我将其旋转回“纵向”,它仍能正常工作 // call to retrieve and parse json data Intent i = new Intent(this,HttpExample.class); startActivity(i); List
// call to retrieve and parse json data
Intent i = new Intent(this,HttpExample.class);
startActivity(i);
List<Overlay> mapOverlays;
mapOverlays = mapView.getOverlays();
mapView.getOverlays().clear();
// display current location overlay
GeoPoint point = new GeoPoint((int)(lat * 1E6), (int)(lon *1E6));
controller.animateTo(point);
Drawable drawable = this.getResources().getDrawable(R.drawable.mark_red);
itemizedOverlay = new MapItemizedOverlay(drawable,this);
OverlayItem overlayItem = new OverlayItem(point, "", "");
itemizedOverlay.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay);
// Go through loaded arrays to display additional overlays
drawable = this.getResources().getDrawable(R.drawable.mark_blue);
itemizedOverlay = new MapItemizedOverlay(drawable, this);
for(int r=0; r<10; r++)
{
GeoPoint point2 = new GeoPoint((int)(lat_coordinates[r]*1E6), (int)(lng_coordinates[r]*1E6));
overlayItem = new OverlayItem(point2, "", "");
itemizedOverlay.addOverlay(overlayItem);
mapView.invalidate();
}
itemizedOverlay.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay);
mapView.invalidate();
}
// When the activity starts up, request updates
@Override
protected void onResume() {
super.onResume();
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10,
1000*60*1, this);
}
//调用以检索和解析json数据
Intent i=新Intent(这个,HttpExample.class);
星触觉(i);
列出地图覆盖图;
mapOverlays=mapView.getOverlays();
mapView.getOverlays().clear();
//显示当前位置覆盖图
地质点=新的地质点((int)(纬度*1E6),(int)(纬度*1E6));
控制器。动画(点);
Drawable Drawable=this.getResources().getDrawable(R.Drawable.mark_red);
itemizedOverlay=新映射项mizedoverlay(可绘制,此);
OverlayItem OverlayItem=新的OverlayItem(点“,”);
itemizedOverlay.addOverlay(overlayItem);
添加(itemizedOverlay);
//浏览已加载的阵列以显示其他覆盖
drawable=this.getResources().getDrawable(R.drawable.mark_blue);
itemizedOverlay=新映射项mizedoverlay(可绘制,此);
对于(int r=0;rI,我在AsyncTask中添加了覆盖,并且没有添加
@Override
protected void onPostExecute(Void result) {
mapView.invalidate();
}
完成后显示覆盖层。
ides是:确保在添加所有覆盖后在UI线程中的MapView上调用invalidate()。HttpExample类存储JSON数据的位置?可能您在第一次调用onCreate时没有数据,当您旋转屏幕onCreate时,会在数据已被解析时再次调用,以便获得结果。请提供更多详细信息。。。