Android:如何在地图上添加半透明地理围栏

时间:2015-11-18 06:17:56

标签: android android-maps android-geofence

Android:如何在地图上添加半透明地理围栏。即,我可以用颜色填充它,但下面的地图仍然可见。

This is what I wish to achieve

4 个答案:

答案 0 :(得分:2)

使用Color.argb()。要了解更多信息,请转到Color类参考页面(http://developer.android.com/reference/android/graphics/Color.html)。以下是制作蓝色半透明填充的示例:

Color.argb(
    100, //This is your alpha.  Adjust this to make it more or less translucent
    Color.red(Color.BLUE), //Red component.
    Color.green(Color.BLUE),  //Green component.
    Color.blue(Color.BLUE));  //Blue component.

这将使您想要的蓝色半透明颜色。如果你有一个自定义的十六进制颜色(0xFFFFFFFF),只需调整第一个字节(0xFF......),使其或多或少半透明。

修改

这是一个简单的函数,您可以使用它传递alpha和颜色来调整它:

int alphaAdjust(int alpha, int color) {
    return Color.argb(
            alpha, //This is your alpha.  Adjust this to make it more or less translucent
            Color.red(color), //Red component.
            Color.green(color),  //Green component.
            Color.blue(color));  //Blue component.
}

答案 1 :(得分:1)

你可以创建一个Circle,这很容易: 您的地理围栏详细信息已经到位(geofLocation和geofRadius),您可以这样做:

// Instantiates a new CircleOptions object and defines the center and radius
CircleOptions circleOptions = new CircleOptions()
.strokeColor(Color.BLACK) //Outer black border
.fillColor(Color.TRANSPARENT) //inside of the geofence will be transparent, change to whatever color you prefer like 0x88ff0000 for mid-transparent red
    .center(geofLocation) // the LatLng Object of your geofence location
    .radius(geofRadius)); // The radius (in meters) of your geofence

// Get back the mutable Circle
Circle circle = myMap.addCircle(circleOptions);

答案 2 :(得分:0)

尝试documentation中列出的示例。我建议使用半透明圆圈来表示你的地理围栏。

答案 3 :(得分:0)

这样的事情:

LatLng latLng = ...
CircleOptions circleOptions = new CircleOptions();
circleOptions.center(latLng)
             .fillColor(Color.argb(64, 0, 255, 0))
             .strokeColor(Color.GREEN)
             .strokeWidth(1)
             .radius(100);

注意Color.argb()方法中的第一个参数(值64),该参数控制圆的alpha / transculency,在这种情况下,它将是一个transculent绿色圆圈。将第一个参数值从0更改为255以实现您想要的透明度。这是Color.argb方法javadoc - http://developer.android.com/reference/android/graphics/Color.html#argb(int, int, int, int)