2013-04-11 4 views
1

Я пытаюсь получить Marker, с помощью Google Maps v2. После решения не работает:Карты v2 tint a Marker

Drawable d = getResources().getDrawable(R.drawable.my_drawable); 
d.setColorFilter(getResources().getColor(
    R.color.tint_color), Mode.MULTIPLY); 
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromBitmap(((BitmapDrawable) d).getBitmap()); 
myMap.addMarker(new MarkerOptions().icon(bitmap).position(latLon)); 

Есть альтернативное решение, чтобы получить Markers тонированное?

ответ

3

Проблема в том, что вы подкрашиваете выталкиваемую (меняя ее краску, действительно), но затем передаете базовый битмап. Один из способов исправить это за пределами API Карт (с которым я не знаком) - это рисовать Drawable на Canvas с новым Bitmap.

Bitmap filtered = Bitmap.createBitmap(d.getBitmap()); 
Canvas canvas = new Canvas(filtered); 
d.draw(canvas); 

(Это просто пример, это не делает каких-либо обработки ошибок. - вы должны обработать случай, когда Android дает Вам такую ​​же Bitmap вместо новой Он также не обрабатывает оценки)

+0

I попробовал ваш ответ, но первая строка ошибочна сразу. Я получаю подсказку с ошибкой кода «не удается разрешить метод getBitmap()». Можете ли вы дать более полное объяснение? –