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()的情況下正確地設置圈的動畫?