使用相机表面查看和他人叠加图像 [英] Using Surface View for camera and others for overlay image

查看:96
本文介绍了使用相机表面查看和他人叠加图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即时通讯在Android的编程新..
我在这里有一个问题。

im new in android programming.. i have a problem here.

我想使该画从摄像头等实景重叠的应用程序。
我用的表面视图保持图像从相机。

i wanna make an application that draw overlay on top real view from camera. i use surface view for hold image from camera.

在这里我的XML我的主要活动:

here my XML for my main activity:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
        <SurfaceView
            android:id="@+id/preview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
        />
        <com.openit.razer.overlayPreview
            android:id="@+id/overlayprev"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
        <com.openit.razer.overlayImage
            android:id="@+id/overlayimg"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
</RelativeLayout>

这是我的主要活动类:
P

and this is my main activity class: p

ublic void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ar);

        overPrev = (overlayPreview)findViewById(R.id.overlayprev);
        overImg = (overlayImage)findViewById(R.id.overlayimg);

        overImg.setZOrderOnTop(true);
        overImg.getHolder().setFormat(PixelFormat.TRANSPARENT);


        preview=(SurfaceView)findViewById(R.id.preview);
        previewHolder=preview.getHolder();
        previewHolder.addCallback(surfaceCallback);
        previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
SurfaceHolder.Callback surfaceCallback=new SurfaceHolder.Callback() {
        public void surfaceCreated(SurfaceHolder holder) {
          try {
            camera.setPreviewDisplay(previewHolder);
          }
          catch (Throwable t) {
            Log.e("PreviewDemo-surfaceCallback",
                  "Exception in setPreviewDisplay()", t);
            Toast
              .makeText(ARrazerNav.this, t.getMessage(), Toast.LENGTH_LONG)
              .show();
          }
        }

        public void surfaceChanged(SurfaceHolder holder,
                                   int format, int width,
                                   int height) {

          Camera.Parameters parameters=camera.getParameters();
          //Camera.Size size=getBestPreviewSize(width, height,
                                             // parameters);
          List<Camera.Size> sizes = parameters.getSupportedPreviewSizes();
          Camera.Size selected = sizes.get(0);
          parameters.setPreviewSize(selected.width, selected.height);
          camera.setParameters(parameters);
          if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
              camera.setDisplayOrientation(90);
          }
          else{
              camera.setDisplayOrientation(0);
          }
          //camera.setDisplayOrientation(90);
          //camera.setDisplayOrientation(0);
          camera.startPreview();
        }

        public void surfaceDestroyed(SurfaceHolder holder) {
          // no-op
        }
      };

但我得到了errror

but i got errror

FATAL EXCEPTION:main
...
...
...
caused by: android.view.InflateException: Binary XML file line #10: Error inflating class blablabla

ü可以帮助我解决我的问题。它是提供3天的IM卡在了这个问题。

could u help me to solve my problems. it was a 3 days im stuck in this problem.

和什么与SurfaceView和在它上面覆盖图像实现摄像机的最佳方法是什么?

and whats the best method for implementing Camera with SurfaceView and overlay image on top of it?

在此先感谢

推荐答案

您应该使用的FrameLayout上放置的其它视图顶视图。 SurfaceView第一,那么你要在它上面的意见。

You should be using a FrameLayout to place views on top of other views. SurfaceView first, then the views you want on top of it.

我其实这个做我自己,把图像通过摄像头preVIEW。我用的FrameLayout具有SurfaceView,并在它上面的ImageView的。工作pretty很好。

I actually did this myself, putting an image over a camera preview. I used a FrameLayout with a SurfaceView and an ImageView on top of it. Worked pretty well.

这篇关于使用相机表面查看和他人叠加图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆