Android Google地图:在地图标记上更改颜色

时间:2013-01-07 14:34:01

标签: android google-maps google-maps-markers google-maps-android-api-2

长话短说;我得到蓝牙设备测量该区域其他设备的信号强度,然后我在Android应用程序上记录GPS位置。

我将这些位置放在我的应用中的谷歌地图上,但我希望标记根据信号强度(0-255)的值从红色变为绿色或类似的东西来改变颜色。

我想我需要在应用程序中创建自己的Drawable或更改以下内容:

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

但是我找不到在Android应用程序中绘制标记的方法。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您使用的是GoogleMap吗?如果您有Drawable-generation,那么您只需通过MarkerOptions.icon方法将其连接起来:

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

这将在地图上绘制您的drawable。

You can replace fromResource fromBitmap如果需要。

答案 1 :(得分:0)

我认为你必须尝试下面的类似代码,但它仅适用于默认标记,颜色会根据色调值而改变,这是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)));
    }