Ответ 1
Osmdroid имеет функциональность для масштабирования. Вам нужно будет настроить gesturelistener, чтобы проверить действие пинча, после чего вы должны вызвать функцию масштабирования в osmdroid. Я верю в osmdroid 3.0.5, это что-то вроде
mOsm.getController.setZoomLevel(someNumber)
(mOsm - это экземпляр вида карты).
У меня есть функция масштабирования, работающая на противоположный пинч (пальцы начинают сближаться, а затем расширяются). Я предлагаю использовать MotionEvent (например, вы сейчас делаете) и делаете что-то вроде этого:
boolean finished = false;
@Override
public boolean onTouch(View v, MotionEvent e) {
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
finished = false;
break;
case MotionEvent.ACTION_MOVE:
finished = false;
break;
case MotionEvent.ACTION_UP:
//action is finishing at this point, so now I can do my refreshActionOnMap();
if (!finished)
refreshActionOnMap();
break;
}
return true;
}
Код, который я добавил, имеет дело с пинчем - законченное логическое значение - это то, что я реализовал в своей программе, чтобы выяснить, когда обновить карту. Это должно помочь вам больше.
Здесь это еще одно объяснение.
Если вы ищете что-то другое, попробуйте прочитать здесь. Android поддерживает поддержку с июня 2010 года.