在Android中为Mapview添加相机预览图层

时间:2014-02-24 12:43:03

标签: android overlay android-camera android-mapview nutiteq

目前,我正在开发一个包含Map的App。在这里我想将我的相机预览添加为Mapview的背景或图层。这意味着,所有地点标记仅显示我的相机预览。 Like this。实际上,这背后的概念是,当我打开我的相机活动时,它会显示附近的地方标记。因此,当我单击该标记时,它会显示包含位置详细信息的弹出窗口。如图所示。我该怎么办呢。请给我任何想法。我尝试在背景上进行相机预览,在前景和setAlpha(0)上进行mapview,并删除mapview上的所有图层,依此类推。什么都不适合我。请帮我找出解决方案。提前致谢。

更新

这是我添加相机预览的方式:

 FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
    cameraSurfaceView = new CameraSurfaceView(this);
    preview.addView(cameraSurfaceView);

这就是我添加MapView的方式:

<?xml version="1.0" encoding="utf-8"?>

<com.nutiteq.MapView
    android:id="@+id/mapView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/transparent_background" />

<FrameLayout
    android:id="@+id/camera_preview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
        </RelativeLayout>


   mapView = (MapView) findViewById(R.id.mapView);

我尝试过mapView.setAlpha(0f);,但这会将mapview与标记一起隐藏。什么都看不到。

我试图设置

Canvas can =  new Canvas();
can.drawColor(0x7FFFFFFF);
mapView.draw(can);

但这个也行不通。

有一些名为addLayer();的方法,但我不知道如何将我的相机预览转换为图层。

3 个答案:

答案 0 :(得分:2)

我担心在其他观点之上使用Nutiteq MapView是不可能的。 MapView基于GLSurfaceView类,其排序与其他视图的排序有限 - 它可能只是最底层的视图。这是Android中的GLSurfaceView限制。

答案 1 :(得分:2)

对不起,我的观念完全错了。在研究增强现实概念后,现在一切顺利。现在我从这里enter link description here使用BeyondAR Agumented Reality SDK。

答案 2 :(得分:1)

我不确定自己是否理解正确,你想要drawable camera preview作为背景,不是吗?

如果这是您想要的,那么您可以捕捉或截取您的camera preview视图

# Build the Drawing Cache
view.buildDrawingCache();

# Create Bitmap
Bitmap cache = view.getDrawingCache();

# Save Bitmap
saveBitmap(cache);
view.destroyDrawingCache(); 

然后您可以根据需要使用此屏幕截图。

我希望,这可以帮到你。

亲切的问候

P.S。我发现此信息here可以捕获我的视图的景点,从那以后我经常使用它。