我有一些代码,它添加了一个自定义注释标注视图,只要在我的Skobbler mapview中选择了注释,就会显示该视图.
@Override
public void onAnnotationSelected(final SKAnnotation annotation) {
...
mapPopup = mapHolder.getCalloutView();
// set the callout view’s background color
mapPopup.setViewColor(Color.WHITE);
View view = getLayoutInflater().inflate(R.layout.map_callout, null);
...
mapPopup.setCustomView(view);
// setting 2nd parameter to 'true' will cause tail to be displayed
mapPopup.showAtLocation(annotation.getLocation(), true);
...
}
Run Code Online (Sandbox Code Playgroud)
我还在showAtLocation()通话中请求使用"tail"imageview显示标注视图.但是,当我在应用程序中测试时,我看到尾部出现在map_surface_holderRelativeLayout容器的顶部,而不是显示callout弹出视图的FrameLayout容器的底部.
当我平移地图时,我可以看到尾部视图相对于标注视图的移动向左和向右移动,但它仍然与map_surface_holder容器的顶部对齐,从不向上或向下移动.
我是否需要在某处添加一些代码以使尾部图像视图知道它应该放置在RelativeLayout容器的y轴方向的哪个位置?
我确实尝试添加一个调用来mapPopup.setVerticalOffset(offset)查看是否有任何效果,但尾部图像仍然锁定在屏幕顶部.
我在自定义标注视图和Skobbler提供的默认视图之间可以看到的另一个区别是标准视图是RelativeLayout容器,而我的实现是FrameLayout.但是,我不确定它是否重要,因为这里的Tail ImageView被添加到我的标注视图的父级,而不是作为孩子.
提前感谢您对此事的任何帮助,如果有任何其他细节会有所帮助,请告诉我.
谢谢!
我目前正在Android应用程序中使用Skobbler SDK来处理映射和逐向导向任务.出现的一个问题是希望改变从SDK发出音频建议的频率,这样我们就不会有太多的指令被一个接一个地发出.
我找到了另一个问题的答案,这个问题解释了修改advice_places.adv我能够在SDK提供的SKMaps.zip文件中找到的文件的必要性.
我遇到的问题似乎与我在完成advice_places.adv文件更改后重新存档zip文件有关.我正在使用Mac,似乎无论我是否使用内置的"压缩..."上下文菜单选项,或者如果我通过命令行执行zip操作,类似于:
zip -vr SKMaps.zip SKMaps/ -x "*.DS_Store"; chmod +x SKMaps.zip
Run Code Online (Sandbox Code Playgroud)
在Skobbler SDK地图初始化过程中,如果没有它崩溃,我似乎仍然无法加载我的应用程序.
我已经将问题缩小到与zip/unzip相关的问题,因为我可以重新创建崩溃,即使我不修改SKMaps.zip的任何内容但只解压缩然后重新压缩.
这是我的应用程序崩溃时看到的日志转储.
SKMaps D SKMapViewHolder----@onResume
D SKMapSurfaceView----@onResume
D SKMapSurfaceView----@onResume preserve GL context is TRUE
WindowManager V Adding window Window{278f3a43 u0 com.company.mymapapp/com.company.mymapapp.activities.MainActivity} at 23 of 32 (before Window{246caca8 u0 SurfaceView})
V Adding window Window{1b0d49f9 u0 SurfaceView} at 23 of 33 (before Window{278f3a43 u0 com.company.mymapapp/com.company.mymapapp.activities.MainActivity})
SKMaps D MapRenderer----@onSurfaceCreated
D MapRenderer----@onSurfaceCreated LinInitialized = true
D MapRenderer---- @initGLView
SkobblerNG …Run Code Online (Sandbox Code Playgroud)