1
下面的代碼執行以下操作: 當選中「focus」複選框時,地圖會爲地圖上的單個overlay項目生成動畫。 有一個問題: 當我拖動地圖,使地圖仍然移動時,我檢查複選框,檢查沒有視覺效果。 有什麼建議嗎?Android MapView:animateTo在地圖平移時不起作用
List<Overlay> mapOverlays;
Drawable drawable;
AssetMarkersOverlay itemizedOverlay;
private CheckBox autofocusCheckBox;
MapView mapView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.getController().setZoom(4);
mapView.setBuiltInZoomControls(true);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.bubble_blue);
itemizedOverlay = new AssetMarkersOverlay(drawable);
String assetName = "TEST";
int lat = 3;
int lon = 3;
ArrayList<GeoPoint> geoPointList = new ArrayList<GeoPoint>();
GeoPoint point = new GeoPoint(lat, lon);
autofocusCheckBox = (CheckBox) findViewById(R.id.showInMap);
autofocusCheckBox.setTag(point);
autofocusCheckBox
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked && buttonView.getTag() != null) {
focusAsset((GeoPoint) buttonView.getTag());
}
}
});
geoPointList.add(point);
itemizedOverlay.addOverlay(lat, lon, assetName, assetName);
mapOverlays = mapView.getOverlays();
mapOverlays.clear();
mapView.postInvalidate();
mapOverlays.add(itemizedOverlay);
fitPoints(geoPointList, mapView);
mapView.postInvalidate();
}
private void focusAsset(GeoPoint point) {
mapView.requestFocus();
mapView.clearAnimation();
mapView.getController().stopAnimation(true);
mapView.getController().setZoom(14);
mapView.getController().animateTo(point);
mapView.postInvalidate();
}
找到解決方案有什麼好運? – bbodenmiller