优步在两点之间有一个阴影。他们是如何做到这一点的?我唯一能想到的就是在不同的灰度不透明度下创建多条线,但结果并不相同。这是怎么回事。
for (int i = 0; i < 6; i++) {
PolylineOptions testOptions = new PolylineOptions();
testOptions.strokeWidth(ARC_STROKE_WIDTH - (i * 5));
if (i == 0) {
testOptions.strokeColor(Color.GRAY_80);
} else if (i == 1) {
testOptions.strokeColor(Color.GRAY_50);
} else if (i == 2) {
testOptions.strokeColor(Color.GRAY_40);
} else if (i == 3) {
testOptions.strokeColor(Color.GRAY_30);
} else if (i == 4) {
testOptions.strokeColor(Color.GRAY_20);
} else if (i == 5) {
testOptions.strokeColor(Color.GRAY_10);
}
// draw polyline to map
}以下是优步的形象

发布于 2017-09-15 11:09:07
老问题,但我想我还是会回答的。实现这一目标的一种方法是获取两点的“投影”坐标,从而形成屏幕上的直线。然后,使用这些值,您可以绘制任意覆盖视图(在您的情况下,渐变阴影)。详细说明:
//First do this to get the projected points.
Point p1 = mMap.getProjection().toScreenLocation(location1);
Point p2 = mMap.getProjection().toScreenLocation(location2);您需要找到p1和p2之间这条“投影”线与x轴之间的角度,然后使用如下所示旋转视图或绘图:
Programmatically rotate drawable or view
您还将需要投影线的大小,以缩放您的绘图,以完全适合之间的两个点。
希望这能有所帮助!
https://stackoverflow.com/questions/43876421
复制相似问题