Android Custom MapView - PullRequest
       21

Android Custom MapView

3 голосов
/ 12 января 2011

Я пытаюсь создать расширенную версию MapView.

Проблема в том, что при определении расширенной версии MapView отображение карты не панорамируется.

Я реализуюonTouchListener Внутри моего пользовательского вида карты.

Я также хочу знать, есть ли какие-либо методы, с помощью которых я могу панорамировать вид карты.

Проблема не сохраняется, когда используется стоковая версия MapView.с тем же исходным кодом.

РЕДАКТИРОВАТЬ

MyMapView источник:

public class MyMapView extends MapView{

    public MyMapView(Context context, String apiKey) {
        super(context, apiKey);

    }
    public MyMapView(Context context, AttributeSet attrs) {
        super(context, attrs);

    }
    public MyMapView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if(event.getAction()==MotionEvent.ACTION_DOWN){
            Log.v("MyMapView","Touched");
        }

        return false ;
    }



}

my onCreate() с MapActivity

protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.mapper);
    mMapView=(MyMapView) findViewById(R.id.mapper_map);
    mMapView.setSatellite(false);       

}

Ответы [ 2 ]

1 голос
/ 12 января 2011

Ваш onTouchEvent () должен вернуть false, иначе он будет использовать событие.

Вы также можете создать экземпляр MapController и использовать его для изменения представления.Вот фрагмент кода из приложения, над которым я работаю:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mapview);

    myMapView = (MapView) findViewById( R.id.myMapView );
    myMapView.setBuiltInZoomControls( true );
    myMapController = myMapView.getController();

    myPoint = new GeoPoint(0, 0);
    myMapController.setCenter( myPoint );
    myMapController.zoomToSpan( 360 * MILLION, 360 * MILLION );
}
0 голосов
/ 18 января 2011

Я произнес это неправильно.

mMapView=(MyMapView) findViewById(R.id.mapper_map); 

должно быть

mMapView=(MapView) findViewById(R.id.mapper_map); 

Это решает проблему.

Спасибо в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...