我使用Here Mobile Android SDK和MapOffScreenRenderer类,用于将地图视图镜像到Android上的演示文稿屏幕。但是,遗憾的是,MapOffScreenRenderer生成位图的性能还不够。我能做些什么呢?
我可以更改生成的位图的RGB配置以提高性能吗? (例如,以某种方式将其切换到rgb 565。)
或者我可以更改某些设置以提高性能吗?
或许我可以以某种方式获得OpenGL纹理而不将其包装到Bitmap中?
是否有任何api可以决定我想在位图中看到的地图视图的哪些层?
我正在使用official documentation中的代码。任何帮助将不胜感激。
答案 0 :(得分:1)
使用屏幕外渲染器捕获的位图将始终非常慢。它必须从PBuffer表面支持的渲染线程中读取后台缓冲区。因此,没有任何数量的RGB配置可以加快速度:)
如果您知道如何直接处理OpenGL调用,则向MapOffScreenRenderer注册OnMapRenderListener和SurfaceUpdatedListener并使用MapOffScreenRenderer#start(SurfaceHolder, SurfaceUpdatedListener),您可以完全按照您的用例描述进行构建。 SurfaceHolder允许开发人员提供地图将被渲染到的自定义Android surface。当通过swapbuffers提交OpenGL渲染调用时,SurfaceUpdatedListener提供回调。在SurfaceTexture和Surface上查看更多高级Android文档。
您还可以尝试使用Map#setVisibleLayersAPI渲染更少的图层来关闭一些渲染图层。但是,我怀疑这会大大提高性能。
您的下一个回复可能是您想要的样本,但遗憾的是我没有任何公开的内容可以分享。