Как использовать пользовательское изображение компаса Android - PullRequest
0 голосов
/ 18 августа 2011

Позвольте мне начать с того, что я видел эту ветку: Как заменить образ компаса MyLocationOverlay?

Согласно этой ветке, он говорит мне, что я не могу переопределить иконку.

Ничего страшного. Тем не менее, я пытаюсь найти способ реализовать это.

Буду ли я прав, говоря, что мне нужно будет создать свой собственный холст, который будет просто рисовать значок, поворачивать его и переопределять метод drawcompass в другом пользовательском классе, расширяющем MyLocationOverlay?

Если это правильно, как мне создать этот пользовательский холст значка / повернуть его? (У меня нет опыта рисования в ОС Android).

1 Ответ

0 голосов
/ 19 августа 2011

Не нужно было создавать свой собственный холст, нужно было только переопределить метод 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 );
}
...