如何在两个位置之间创建阴影折线?
How to create shadow polyline between two locations?
优步在两点之间有阴影。他们是如何做到这一点的?我唯一能想到的就是在不同的灰色不透明度下创建多条线,但结果并不相同。这是它的样子。
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
}
这是优步的图片
老问题了,不过我想我还是会回答的。实现此目的的一种方法是获取屏幕上形成直线的两点的 "projected" 坐标。然后,使用这些值,您可以绘制任何叠加视图(在您的情况下为渐变阴影)。详细说明:
//First do this to get the projected points.
Point p1 = mMap.getProjection().toScreenLocation(location1);
Point p2 = mMap.getProjection().toScreenLocation(location2);
您需要找到 p1 和 p2 之间的这条 "projected" 线与 x 轴之间的角度,然后使用如下方式旋转您的视图或绘图:
Programmatically rotate drawable or view
您还需要投影线的大小来缩放您的可绘制对象以恰好适合两点之间。
希望对您有所帮助!
优步在两点之间有阴影。他们是如何做到这一点的?我唯一能想到的就是在不同的灰色不透明度下创建多条线,但结果并不相同。这是它的样子。
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
}
这是优步的图片
老问题了,不过我想我还是会回答的。实现此目的的一种方法是获取屏幕上形成直线的两点的 "projected" 坐标。然后,使用这些值,您可以绘制任何叠加视图(在您的情况下为渐变阴影)。详细说明:
//First do this to get the projected points.
Point p1 = mMap.getProjection().toScreenLocation(location1);
Point p2 = mMap.getProjection().toScreenLocation(location2);
您需要找到 p1 和 p2 之间的这条 "projected" 线与 x 轴之间的角度,然后使用如下方式旋转您的视图或绘图:
Programmatically rotate drawable or view
您还需要投影线的大小来缩放您的可绘制对象以恰好适合两点之间。
希望对您有所帮助!