2011-10-10 49 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.