Android-карта вид значка конкретного изображения в два раза меньше стандартного изображения - PullRequest
0 голосов
/ 13 марта 2012

У меня есть два растровых изображения, которые отличаются только цветом.Зеленый используется для отображения точек интереса на виде карты, а синий показывает текущее местоположение устройства.Я загружаю растровые изображения из каталога ресурсов и преобразовываю их в объекты BitmapDrawable идентичным образом.

Я устанавливаю растровое растровое изображение зеленого цвета в качестве изображения по умолчанию для наложения вида карты;для точек POI я просто добавляю их в слой, чтобы они выбирали изображение по умолчанию (зеленое).

Для элемента текущей позиции я явно устанавливаю растровое изображение синего цвета, которое можно рисовать при добавлении точки в тот же слой наложения.

Единственная разница между обычными POI и текущим местоположением состоит в том, что текущее местоположение имеет определенный (синий) растровый рисунок, в то время как обычные POI выбирают растровый (зеленый) растровый слой по умолчанию для рисования.Растровые изображения поступили из фотошопа (сохранены для Интернета) и отличаются только по цветам.

Но когда я отображаю карту, изображение значка текущей точки расположения в два раза меньше изображения по умолчанию.Это верно при любом уровне масштабирования.Я работал над этим, изменяя размер текущего растрового (синего) растрового изображения, чтобы он был в два раза больше зеленого растрового изображения, и теперь вы не можете заметить разницу.Так что это определенно какой-то тип масштабирования, происходящий при рисовании изображений.

Я не вижу интерфейса на множестве классов карт Google, которые бы указывали на установку коэффициента масштабирования.

Хотямой способ удвоения определенной (синей) иконки работает, я очень хотел бы понять, что я делаю неправильно.Что я забыл сделать?

1 Ответ

0 голосов
/ 14 марта 2012

Во-первых, я бы сказал, использовать отдельный оверлей для вашего местоположения, добавление их к тому же ItemizedOverlay не рекомендуется.

Убедитесь, что вы обязаны boundToBottom () для всего, что настраиваете пользовательский.По памяти оверлеи не меняют размеры рисованных элементов, поэтому это звучит так, как будто вы устанавливаете отдельный пользовательский синий штифт, если вы не настраиваете рисованный объект должным образом.Необходимо установить boundBottom или boundBottomCenter, в противном случае это может привести к путанице в наложении.

Также просто убедитесь, что ваши рисунки находятся в папке для рисования dpi.(чаще всего drawable-hdpi).

...