如果我在Android或iOS上制作了一个100%基于OpenGL的用户界面,有可能在其中嵌入谷歌地图小部件吗?

如果我在Android或iOS上制作了一个100%基于OpenGL的用户界面,有可能在其中嵌入谷歌地图小部件吗?,android,ios,android-layout,opengl-es,android-widget,Android,Ios,Android Layout,Opengl Es,Android Widget,我以前从未做过这样的事。我问这个问题的原因是因为我正在考虑使用OpenGL制作自己的用户界面,以便在Android、iOS等平台上实现跨平台。这样做可以避免人们在制作在不同设备上使用本机小部件的跨平台应用时面临的跨平台问题。PhoneGap或Appcelerator等框架提供的HTML5/JavaScript解决方案既缓慢又笨重。HTML5/JavaScript的性能无法与OpenGL和本机小部件的性能相比 所以我的问题是(我打赌这可能是一个简单的问题):如果我有自己的由OpenGL支持的用户界

我以前从未做过这样的事。我问这个问题的原因是因为我正在考虑使用OpenGL制作自己的用户界面,以便在Android、iOS等平台上实现跨平台。这样做可以避免人们在制作在不同设备上使用本机小部件的跨平台应用时面临的跨平台问题。PhoneGap或Appcelerator等框架提供的HTML5/JavaScript解决方案既缓慢又笨重。HTML5/JavaScript的性能无法与OpenGL和本机小部件的性能相比

所以我的问题是(我打赌这可能是一个简单的问题):如果我有自己的由OpenGL支持的用户界面,如果需要,我可以在其中嵌入一个本地小部件(即Android或iOS谷歌地图小部件)


我正计划尽量减少使用本机小部件,但很明显,与简单的按钮或文本字段相比,创建GoogleMap小部件有点困难。我猜想,也许可以调用Android或iOS功能,在我的界面上覆盖一个小部件视图。这是一个很好的猜测吗?

Android在所有OpenGL工作中都使用了
GLSurfaceView
。它最终继承自
视图
类,因此易于与其他本机视图一起使用


一个想法可能是将
FrameLayout
GLSurfaceView
和其中的其他视图一起使用。这就是他们建议使用摄像头覆盖的方式,所以应该不会有任何不同。

Android在所有OpenGL工作中都使用了
GLSurfaceView
。它最终继承自
视图
类,因此易于与其他本机视图一起使用


一个想法可能是将
FrameLayout
GLSurfaceView
和其中的其他视图一起使用。这就是他们建议使用摄像头覆盖的方式,所以应该不会有什么不同。

我不能回答Android的问题,但在iOS中,混合使用UIKit(本机控件)和OpenGL/ES绘制的东西是没有问题的。这是一个糟糕的主意。在过去的25年中,苹果公司花费了数亿美元(CocoaTouch就是这么老)付钱给程序员来设计好的用户界面小部件,并且一直在改进它,你想扔掉它,重新开始吗?仅仅制作一个好的文本输入字段就需要六个月的时间。两周后制作一个按钮,该按钮可对触摸事件做出正确响应。为每个平台编写自定义接口代码,或者根本不用编写应用程序。@AbhiBeckert你是对的,从头开始可能需要更多的时间,但是有一些很好的框架(免费和开源的),例如Kivy、Qt Quick、HaxeNME和MoSync,可以帮助您制作OpenGL支持的接口。此外,如果我的应用程序在不同平台上都有自己惊人的外观和感觉,那么(以我的拙见)这将使我的应用程序更出色、更卓越、更原创。然而,有多少“好”的框架实际上是好的呢?例如,当你使用它们时,画外音是否有效?@AbhiBeckert你说的画外音是什么意思?是语音对文本还是文本对语音?如果我确实需要这些功能,那么你是对的:我可能需要处理一些特定于平台的编码,但至少GUI在所有方面都是一致的,而且我的应用程序基本上都是基于表单的。目前,我真正需要的需要平台特定工作的关键功能是摄像头访问、文件访问和GPS/定位。这些类型的东西并不真正涉及GUI,我将调用这些功能的本机函数。我不能回答Android,但在iOS中,混合使用UIKit(本机控件)和OpenGL/ES绘制的东西是没有问题的。这是一个糟糕的想法。在过去的25年中,苹果公司花费了数亿美元(CocoaTouch就是这么老)付钱给程序员来设计好的用户界面小部件,并且一直在改进它,你想扔掉它,重新开始吗?仅仅制作一个好的文本输入字段就需要六个月的时间。两周后制作一个按钮,该按钮可对触摸事件做出正确响应。为每个平台编写自定义接口代码,或者根本不用编写应用程序。@AbhiBeckert你是对的,从头开始可能需要更多的时间,但是有一些很好的框架(免费和开源的),例如Kivy、Qt Quick、HaxeNME和MoSync,可以帮助您制作OpenGL支持的接口。此外,如果我的应用程序在不同平台上都有自己惊人的外观和感觉,那么(以我的拙见)这将使我的应用程序更出色、更卓越、更原创。然而,有多少“好”的框架实际上是好的呢?例如,当你使用它们时,画外音是否有效?@AbhiBeckert你说的画外音是什么意思?是语音对文本还是文本对语音?如果我确实需要这些功能,那么你是对的:我可能需要处理一些特定于平台的编码,但至少GUI在所有方面都是一致的,而且我的应用程序基本上都是基于表单的。目前,我真正需要的需要平台特定工作的关键功能是摄像头访问、文件访问和GPS/定位。但是,这些类型的东西并不真正涉及GUI,我将为这些特性调用本机函数。谢谢你的回答。相反,我决定最好实现我自己的谷歌地图版本,该版本完全由OpenGL提供支持,这将使其跨平台(除了Windows Phone的Direct3D平台)。另一个选择是使用HaxeNME编写它,它确实适用于包括Windows Phone在内的所有平台,因为HaxeNME有一个渲染到HTML5画布的选项,而画布在Windows Phone 8中是100%硬件加速的。据我所知,Windows Phone 8也通过其HTML5 web视图提供本机API。因此,如果canvas确实是完全硬件加速的,那么在WindowsPhone8上使用HaxeNME进行开发可能会非常好。谢谢您的回答。我决定改为