Android Google карта: Променете цвета на маркера на картата

Кратка история; Стигнах до Bluetooth устройство, което измерва силата на сигнала на други устройства в района, и след това записвам GPS позициите в приложението за Android.

Поставям позициите на карта на Google в моето приложение, но бих искал маркерът да променя цвета си в зависимост от стойността на силата на сигнала (0-255) от червено на зелено или нещо подобно.

Мисля, че трябва да направя свой собствен Drawable в приложението или да променя това, което е в:

Drawable drawable = this.getResources().getDrawable(R.drawable.marker);

Но не мога да намеря начин да нарисувам маркерите в приложението за Android.

Някакви идеи?


person IQn    schedule 07.01.2013    source източник


Отговори (2)


Мисля, че трябва да опитате подобен код по-долу, но той е приложим само за маркер по подразбиране, цветовете ще се променят в зависимост от стойността на нюанса, това е фрагмент от Google Maps API Demos:

    // Creates a marker rainbow demonstrating how to create default marker icons of different
    // hues (colors).
    int numMarkersInRainbow = 12;
    for (int i = 0; i < numMarkersInRainbow; i++) {
        mMap.addMarker(new MarkerOptions()
                .position(new LatLng(
                        -30 + 10 * Math.sin(i * Math.PI / (numMarkersInRainbow - 1)),
                        135 - 10 * Math.cos(i * Math.PI / (numMarkersInRainbow - 1))))
                .title("Marker " + i)
                .icon(BitmapDescriptorFactory.defaultMarker(i * 360 / numMarkersInRainbow)));
    }
person Balaji    schedule 19.06.2013

Използвате ли GoogleMap? Ако не работите с Drawable-generation, всичко, което трябва да направите, е да го свържете чрез метода MarkerOptions.icon:

BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.resource);
MarkerOptions opts = new MarkerOptions().icon(descriptor);
this.getMap().addMarker(opts);

Това ще начертае вашия чертеж на картата.

Вие може да замени fromResource с fromBitmap, ако е необходимо.

person yarian    schedule 13.02.2013