0
我正在制作一个应用程序,该应用程序应该允许用户在地图顶部绘制一个圆。在MapFragment上正确地绘制圆形的绘图
我用过的答案this问题,以允许用户使用该触摸监听器拖出一个可变大小的圆圈:
public void setupListeners(){
frameLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
int x_co = Math.round(x);
int y_co = Math.round(y);
Projection projection = map.getProjection();
Point x_y_points = new Point(x_co, y_co);
LatLng latLng = map.getProjection().fromScreenLocation(x_y_points);
double latitude = latLng.latitude;
double longitude = latLng.longitude;
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
Log.d("dero", "Started drawing marker at: "+latLng.toString());
mStartDraw = latLng;
break;
case MotionEvent.ACTION_MOVE:
//Log.d("dero", "Finger moved to: "+latLng.toString());
// finger moves on the screen
float[] distRes = new float[1];
Location.distanceBetween(mStartDraw.latitude, mStartDraw.longitude, latLng.latitude, latLng.longitude, distRes);
map.clear();
drawMusicMarker(mStartDraw, distRes[0]);
break;
case MotionEvent.ACTION_UP:
Log.d("dero", "Circle finished at: "+latLng.toString());
mStartDraw = null;
mMapMovable = true;
return true;
}
return !mMapMovable;
}
});
这工作得相当好,我可以拖出圈在地图上不管什么时候我要。但是,因为每次用户手指移动时都必须调用.clear(),所以在绘制时圆形会像疯了一样闪烁。有没有一种方法可以在不使用.clear()的情况下正确地设置圈的动画?