gpt4 book ai didi

android - 添加查看谷歌地图

转载 作者:行者123 更新时间:2023-11-30 01:56:06 25 4
gpt4 key购买 nike

我正在尝试在谷歌地图 fragment 中的标记上添加一个 View 我什至在旧的已弃用函数中到处搜索,但似乎无论我使用什么方法, map 总是会在我正在创建的 View 上调用 canvas.draw() 将其转换为位图“图片”,但我想要在包含 textview 的标记上显示气泡,从用户输入文本不显示一些文本

有什么可行的方法吗?

注意:我试图避免创建 View 并将其放在 realtivelayout 中的 fragment 上,因为我试图避免计算标记的位置(如果可能的话)

我会放一些我的代码,但我不能决定哪个是相关的!

最佳答案

不幸的是,AFAIK 对于当前版本的 Maps v2 api,除了监视标记位置之外别无他法。

下面是如何执行此操作的示例代码。

我在自己的应用中使用了这种方法,效果很好。

AbsoluteLayout.LayoutParams overlayLayoutParams;

ViewGroup infoWindowContainer; // your custom info window


private void showInfoWindow(Marker marker) {
/*
prepare & show your custom info window
*/
trackedPosition = marker.getPosition();
startPositionUpdater();
}

private void hideInfoWindow() {
/*
hide your custom info window
*/
stopPositionUpdater();
}


private void startPositionUpdater() {
if (trackedPosition != null && infoWindowContainer.getVisibility() == VISIBLE && map != null) {
positionUpdaterRunnable = new PositionUpdaterRunnable();
handler.post(positionUpdaterRunnable);
}
}

private void stopPositionUpdater() {
if(positionUpdaterRunnable != null) {
handler.removeCallbacks(positionUpdaterRunnable);
positionUpdaterRunnable = null;
}
}


private class PositionUpdaterRunnable implements Runnable {
private int lastXPosition = Integer.MIN_VALUE;
private int lastYPosition = Integer.MIN_VALUE;

@Override
public void run() {
if (trackedPosition != null && isInfoWindowShown() && map != null && handler != null) {

Projection projection = map.getProjection();
Point targetPosition = projection.toScreenLocation(trackedPosition);

if (lastXPosition != targetPosition.x || lastYPosition != targetPosition.y) {
overlayLayoutParams.x = targetPosition.x - popupXOffset;
overlayLayoutParams.y = targetPosition.y - popupYOffset;
infoWindowContainer.setLayoutParams(overlayLayoutParams);

lastXPosition = targetPosition.x;
lastYPosition = targetPosition.y;
}

handler.postDelayed(this, INFO_WINDOW_POSITION_REFRESH_INTERVAL);
}
}
}

关于android - 添加查看谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com