我想用我的手指在谷歌地圖上繪製覆蓋圖。 我已經完成了這條線的繪製.. 但地圖也隨着我的手指移動,所以我不能畫得很好,因爲當地圖也移動時,我可以在我的手指周圍繪製一個小圓圈...安卓地圖禁用移動
如何禁用地圖的移動(拖動)並仍然能夠用手指繪製並顯示覆蓋圖?
我當前的代碼看起來是這樣的:
public class OverlayMap extends Overlay {
private List<MapGeoLine> geoLines = new ArrayList<MapGeoLine>();
private List<GeoPoint> geoPoints;
private boolean isTouched = false;
@Override
public boolean onTouchEvent(MotionEvent motionEvent, MapView mapView) {
if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){
geoPoints = new ArrayList<GeoPoint>();
geoPoints.add(mapView.getProjection().fromPixels((int)motionEvent.getX(),(int)motionEvent.getY()));
isTouched = true;
}
if(motionEvent.getAction() == MotionEvent.ACTION_MOVE){
if(isTouched){
geoPoints.add(mapView.getProjection().fromPixels((int)motionEvent.getX(),(int)motionEvent.getY()));
}
}
if(motionEvent.getAction() == MotionEvent.ACTION_UP){
if(isTouched){
geoPoints.add(mapView.getProjection().fromPixels((int)motionEvent.getX(),(int)motionEvent.getY()));
}
isTouched = false;
}
return super.onTouchEvent(motionEvent, mapView);
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if(geoPoints != null && geoPoints.size() > 1 && !isTouched){
Paint mPaint = new Paint();
mPaint.setStrokeWidth(2);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setAntiAlias(true);
Projection projection = mapView.getProjection();
Point from = new Point();
Point to = new Point();
Path p = new Path();
projection.toPixels(geoPoints.get(0), from);
for(int i = 1; i < geoPoints.size(); i++){
projection.toPixels(geoPoints.get(i), to);
p.moveTo(from.x, from.y);
p.lineTo(to.x, to.y);
from.set(to.x, to.y);
}
canvas.drawPath(p, mPaint);
mapView.invalidate();
}
super.draw(canvas, mapView, shadow);
}
}
此問題與Google Maps API V3無關。 (標記刪除) – Marcelo