Я столкнулся с проблемой добавления наложений. Я хочу добавить кнопку, которая будет переключаться между обычным и спутниковым представлениями, а также некоторым текстовым элементом, который отобразит мои фактические координаты, и те будут обновлены при изменении моего местоположения. Я попытался поставить там классический TextView, добавленный в мой импорт map.java для использования GPS, и onLocationChanged. Я пытаюсь обновить TextView, но не добился успеха. Это должно быть сделано через Overlays, но я не вижу, как установить на экране мои нужные элементы - кнопку с определенной функцией и регулярно обновляемый textView. Любые идеи?
спасибо
изменить
int g=0;
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapView.setEnabled(true);
mapView.setClickable(true);
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.toggle:
if (g!=1){
mapView.invalidate();
mapView.setSatellite(true);
mapView.invalidate();
g=1;
}else{
mapView.invalidate();
mapView.setSatellite(false);
mapView.invalidate();
}
break;
}
}
Для этого вам не требуется наложение. Просто определите макет с помощью XML файла макета с RelativeLayout в качестве корневого элемента.
С относительной компоновкой вы можете размещать такие элементы, как TextViews или кнопки поверх друг друга. Поэтому в вашем случае вы должны сначала определить MapView в своем файле макета, а затем элементы, которые вы хотите отобразить в MapView. Теперь все элементы должны отображаться в верхнем левом углу друг над другом. Используя атрибуты, определенные RelativeLayout, вы можете теперь выровнять свои элементы так, как вы хотите. Посмотрите на учебник RealtiveLayout для лучшего понимания.
Вот несколько приятных ресурсов:
http://developer.android.com/resources/tutorials/views/hello-mapview.html
http://mobiforge.com/developing/story/using-google-maps-android
Эффективные наложения карт в Google Картах Google
Надеюсь, что вы получите ответ: -)