У меня есть Android MapView, в котором мне нужно иметь второй слой наложенных пинов, поверх того, который MapView уже обрабатывает.
Для этого я поместил FrameLayout поверх MapView и поместилмои булавки как ImageViews в этом макете.
Я переопределил метод Draw () в ImageViews, чтобы обновить их положение, когда карта перемещается (так, чтобы булавки перемещались вместе с ней) следующим образом:
public void draw(Canvas canvas) {
if(mCoordinates != null && mapView != null){
LayoutParams mParams = (LayoutParams)this.getLayoutParams();
mapView.getProjection().toPixels(mCoordinates, newPosition);
mParams.leftMargin = newPosition.x;
mParams.topMargin = newPosition.y;
}
super.draw(canvas);
}
Проблема: представления обновляются слишком медленно, поэтому, когда я перемещаю карту, булавки, кажется, отстают от нее.
Любое понимание подхода или реализации приветствуется