Маркер в MapView исчезает после его поворота - PullRequest
0 голосов
/ 19 июля 2011
public Drawable rotateDrawable(int angle)
{
    Bitmap arrowBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.arrowscalled);

    // Create blank bitmap of equal size
    Bitmap canvasBitmap = arrowBitmap.copy(Bitmap.Config.ARGB_8888, true);
    canvasBitmap.eraseColor(0x00000000);

   // Create canvas
   Canvas canvas = new Canvas(canvasBitmap);

   // Create rotation matrix
   Matrix rotateMatrix = new Matrix();
   rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2);

   // Draw bitmap onto canvas using matrix
   canvas.drawBitmap(arrowBitmap, rotateMatrix, null);

   return new BitmapDrawable(canvasBitmap);
}

Каждый раз, когда я называю это, маркер исчезает, а не вращается.Что я делаю не так?

1 Ответ

0 голосов
/ 20 июля 2011

Вместо трудностей создания нового Canvas и всего, что использует Bitmap.createBitmap (источник растрового изображения, int x, int y, int width, int height, Matrix m, логический фильтр) . Когда вы создаете свою матрицу вращения, используйте половину ширины и высоты, передаваемых в функцию createBitmap. После этого создайте свой BitmapDrawable.

...