Android, поверните значок круга 18x18 пикселей, результат: иконки разных размеров? - PullRequest
0 голосов
/ 30 сентября 2011

Я рисую кучу иконок на карте.На самом деле значки приходят с того же изображения, повернутые.Но на карте изображения имеют два разных размера, я не знаю почему.Вот как выглядит результат: http://orangesoftware.net/iconmap.png

Файл изображения выглядит следующим образом: http://orangesoftware.net/arrow18.png

Код для поворота значка:

Matrix mtx = new Matrix();
mtx.postRotate(unit.heading);
Bitmap bmp = BitmapFactory.decodeResource(getResources(), 
                     R.drawable.arrow18);
Bitmap rotatedBMP = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(),
                       bmp.getHeight(), mtx, true);
BitmapDrawable bmd = new BitmapDrawable(rotatedBMP);

Любойволшебное понимание приветствуется, спасибо

1 Ответ

3 голосов
/ 30 сентября 2011

Причиной различий в размерах является случай, когда поворот не кратен 90 градусам. Bmp становится ромбом, углы которого выходят за пределы удерживаемого им ImageView, поэтому его размер изменяется в соответствии с ImageView. Самый простой способ устранить это несоответствие - это установить scaleType для ImageView в значение CENTER. Это будет просто центрировать изображение внутри, не масштабируя его по размеру.

...