在Android中将相机预览添加为Mapview的图层
目前,我正在开发一个包含地图的应用程序。在这里,我想添加我的相机预览作为Mapview的背景或图层。也就是说,所有位置标记只显示一个“我的相机预览”。实际上,这背后的概念是,当我打开我的相机活动时,它会显示附近的位置标记。所以,当我点击那个标记时,它会显示包含地点详细信息的弹出窗口。如图所示。我怎样才能实现这一点呢。请告诉我任何想法。我尝试过在背景上使用相机预览,在前景上使用mapview,并使用setAlpha(0);,并删除mapview上的所有图层,依此类推。对我来说没有什么锻炼。请帮我找出解决办法。提前谢谢 更新: 以下是我添加相机预览的方式:在Android中将相机预览添加为Mapview的图层,android,overlay,android-camera,android-mapview,nutiteq,Android,Overlay,Android Camera,Android Mapview,Nutiteq,目前,我正在开发一个包含地图的应用程序。在这里,我想添加我的相机预览作为Mapview的背景或图层。也就是说,所有位置标记只显示一个“我的相机预览”。实际上,这背后的概念是,当我打开我的相机活动时,它会显示附近的位置标记。所以,当我点击那个标记时,它会显示包含地点详细信息的弹出窗口。如图所示。我怎样才能实现这一点呢。请告诉我任何想法。我尝试过在背景上使用相机预览,在前景上使用mapview,并使用setAlpha(0);,并删除mapview上的所有图层,依此类推。对我来说没有什么锻炼。请帮我找
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
cameraSurfaceView = new CameraSurfaceView(this);
preview.addView(cameraSurfaceView);
这就是我添加地图视图的方式:
<?xml version="1.0" encoding="utf-8"?>
但是这个也不起作用
有一种方法叫做
addLayer()代码>但我不知道如何将相机预览转换为图层 恐怕无法在其他视图之上使用NutiteqMapView
MapView
基于GLSURFACHEVIEW
类,它与其他视图的顺序是有限的-它只能是最底部的视图。这是Android的一个限制。对不起,我的概念完全错了。现在,在研究了增强现实概念后,一切都进展顺利。现在我在这里使用BeyondAR Agumented Reality SDK 我不确定我是否理解正确,你想要一个可绘制的相机预览的作为背景,不是吗
如果这是您想要的,那么您可以像这样捕获或截图您的相机预览
视图
# Build the Drawing Cache
view.buildDrawingCache();
# Create Bitmap
Bitmap cache = view.getDrawingCache();
# Save Bitmap
saveBitmap(cache);
view.destroyDrawingCache();
然后你可以随心所欲地使用这个屏幕截图
我希望这能对你有所帮助
问候
p、 我发现这些信息是为了捕捉我的观点,从那以后我经常使用它 你能提供一些代码片段来进行研发吗?这是一个增强的RealityToDroid应用程序@是的,我正在看。希望这一个能帮助我,一旦我做了,我会让你知道。非常感谢你,伙计。。你太棒了!!!当我运行这个示例应用程序时,出现了一个名为VM中止的错误。0xdeaddood(代码=1)处的Fatel信号11(SIGSEGV),线程7855(org.mixare)。。你知道为什么吗?嗨,马克,你是对的,Nutiteq地图视图
的行为与安卓地图视图
不一样,这将是一个问题,即将父视图为Nutiteq地图视图
的视图充气,因此,inflate
方法需要一个ViewGroup
父参数,Nutiteq Mapview
不是从ViewGroup
继承的,而是“Android.View”,所以我认为RathaKrishna想要的只是一个捕获的视图`asdraawable
,它独立于Nutiteq
,那只是安卓系统的一部分。查看<代码>相关,而不是查看组<代码>相关。
Canvas can = new Canvas();
can.drawColor(0x7FFFFFFF);
mapView.draw(can);
# Build the Drawing Cache
view.buildDrawingCache();
# Create Bitmap
Bitmap cache = view.getDrawingCache();
# Save Bitmap
saveBitmap(cache);
view.destroyDrawingCache();