2011-10-10 28 views
0

我正在尋找通過繼承MyLocationOverlay來在MapView上繪製自己的指南針圖像。自定義圖片需要大於MyLocationOverlay顯示的默認圖片。我重寫drawCompass和使用自己的圖形內容(位圖)來繪製羅盤:Android:定製指南針圖像只是部分重繪

@Override 
protected void drawCompass(Canvas canvas, float bearing) { 

    Rect bounds = canvas.getClipBounds(); 
    // usual result: bottom=98, left=10, right=90, top=18 

    // draw something custom here... 

    // Don't want default compass image:   
    //super.drawCompass(canvas, bearing); 

} 

你如何設置的自定義圖像,以便調用drawCompass設置畫布對象上所需的界限的界限?看來我得到的界限是適用於默認圖像的界限。

(drawCompass似乎是從MyLocationOverlay.draw()呼籲 - 我可以覆蓋,但我仍然不確定如何改變畫布對象的ClipBounds。)

回答

0

你的問題讓我意識到自己的剪輯問題描述是造成我的自定義指南針繪製的怪異方式。我在這裏找到了答案:

http://jtomlinson.blogspot.com/2008/10/clipping.html

您需要使用

canvas.clipRect(0, 0, newWidth, newHeight, Region.Op.REPLACE); 

(要使用它,你將需要import android.graphics.Region.