2011-08-17 21 views
0

让我说,我已经看到了这个线程启动:How can I replace the Compass image of MyLocationOverlay?如何使用自定义罗盘图像的Android

根据这一线索,它告诉我,我不能覆盖该图标。

没什么大不了的。这就是说,我试图找出一种方法来实现这一点。

我会说我需要创建自己的自定义画布,只需绘制图标并旋转它并覆盖扩展MyLocationOverlay的另一个自定义类中的drawcompass方法即可吗?

如果这是正确的,我该如何创建该图标的自定义画布/旋转它? (我没有在android操作系统中绘制的经验)。

回答

0

也没必要做我自己的自定义画布,只有重写drawCompass方法,所以它出现在最初的问题,我链接的信息是不正确的:

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

    Bitmap arrowBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.compass); 
     Matrix matrix = new Matrix(); 
     matrix.postRotate(bearing); 
     Bitmap rotatedBmp = Bitmap.createBitmap(
      arrowBitmap, 
      0, 0, 
      arrowBitmap.getWidth(), 
      arrowBitmap.getHeight(), 
      matrix, 
      true 
     ); 

     canvas.drawBitmap(rotatedBmp, 20, 20, null); 
}