Как сделать объект MapView прозрачным (альфа)?

Все,

Мне нужно отобразить информацию об объекте MapView. Там нет проблем.

Проблема в том, что иногда объект MapView отображает детали карты, которые визуально конкурируют с моими данными наложения.

Итак, что я хотел бы сделать, так это предоставить способ «уменьшить масштаб» объекта MapView визуально с помощью альфа-канала.

Можно ли применить альфа-значение к объекту MapView? Если да, то как?

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

Прозрение пожалуйста.

Спасибо.

Богатый


person richbl    schedule 20.10.2010    source источник


Ответы (1)


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

Первым предложением было бы создать подкласс MapView и переопределить dispatchDraw() примерно так:

@Override protected void dispatchDraw(Canvas canvas) {

  // Firstly let MapView draw
  super.dispatchDraw(canvas);

  // Draw a translucent fill on top of it
  canvas.drawColor(0x7FFFFFFF);

  // TODO: Draw my overlay
}
person Reuben Scratton    schedule 20.10.2010
comment
Графический дизайн (наложение) довольно хорошо настроен, так что это не вариант. Фактически, реальная проблема заключается в текстовых метках значков: они конфликтуют с деталями MapView. Отсюда и желание альфа-версии MapView. Спасибо. - person richbl; 23.10.2010