首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两个地点之间创建阴影折线?

如何在两个地点之间创建阴影折线?
EN

Stack Overflow用户
提问于 2017-05-09 17:36:21
回答 1查看 739关注 0票数 1

优步在两点之间有一个阴影。他们是如何做到这一点的?我唯一能想到的就是在不同的灰度不透明度下创建多条线,但结果并不相同。这是怎么回事。

代码语言:javascript
复制
    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
    }

以下是优步的形象

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-15 11:09:07

老问题,但我想我还是会回答的。实现这一目标的一种方法是获取两点的“投影”坐标,从而形成屏幕上的直线。然后,使用这些值,您可以绘制任意覆盖视图(在您的情况下,渐变阴影)。详细说明:

代码语言:javascript
复制
//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

您还将需要投影线的大小,以缩放您的绘图,以完全适合之间的两个点。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43876421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档