2010-06-21 29 views
0

我想在畫布上繪製一條線,並將其投影到android中的地圖上。我也使用我的應用程序標籤。當我前後翻轉標籤時,我正在丟失我畫的線條。有沒有辦法以某種方式存儲它們,這樣他們會一直呆在那裏? MyLocationOverlay類看起來是這樣的:如何在活動中存儲畫布線?

class MyLocationOverlay extends Overlay 
{ 

    @Override 
    public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) 
    { 

    super.draw(canvas, mapView, shadow); 

    Paint paint = new Paint(); 

    paint.setStrokeWidth(2); 
    paint.setARGB(255, 153, 29, 29); 
    paint.setStyle(Paint.Style.STROKE); 

    if(controlPoints>0) 
    { 

     Point point1_returned = new Point();   
     Point point2_returned = new Point();  
     Point point3_returned = new Point(); 

     mapView.getProjection().toPixels(returned_pin1_geo, point1_returned); 
     mapView.getProjection().toPixels(returned_pin2_geo, point2_returned); 
     mapView.getProjection().toPixels(returned_pin3_geo, point3_returned); 

     canvas.drawLine(point1_returned.x, point1_returned.y, point2_returned.x, point2_returned.y, paint); 
     canvas.drawLine(point2_returned.x, point2_returned.y, point3_returned.x, point3_returned.y, paint); 
     canvas.drawLine(point3_returned.x, point3_returned.y, point1_returned.x, point1_returned.y, paint); 

     return true; 
    } 

    else 

    { 
     //Point lastPoint = new Point(); 
     Point point = new Point();  
     // Converts lat/lng-Point to OUR coordinates on the screen. 
     Point myScreenCoords = new Point();  
     Point thirdPoint = new Point(); 

     mapView.getProjection().toPixels(pin1_geo, myScreenCoords); 
     mapView.getProjection().toPixels(pin2_geo, point); 
     mapView.getProjection().toPixels(pin3_geo, thirdPoint); 
     canvas.drawLine(myScreenCoords.x, myScreenCoords.y, point.x, point.y, paint); 
     canvas.drawLine(point.x, point.y, thirdPoint.x, thirdPoint.y, paint); 
     canvas.drawLine(thirdPoint.x, thirdPoint.y, myScreenCoords.x, myScreenCoords.y, paint); 
     return true; 
    } 







    /*canvas.drawLine(point1.x, point1.y, point2.x, point2.y, paint); 
    canvas.drawLine(point2.x, point2.y, point3.x, point3.y, paint); 
    canvas.drawLine(point3.x, point3.y, point1.x, point1.y, paint);*/ 



} 

}

有人可以幫助我?我已經嘗試標記標籤等,但沒有任何工作。非常感謝!

回答