在空白surfaceView打开相机 [英] Open Camera in a blank surfaceView
问题描述
我很新到Android编程和所有我想要做的是表面视图中打开摄像头应用程序,以便我可以打开相机到它,并设置一些参数,如下面的?
I am very new to android programming and All I want to do is open camera app in surface view so that I can open camera into it and set some parameters like following?
Camera camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_ON);
camera.setParameters(p);
camera.startPreview();
camera.release();
我碰到评论是说,我要过的表面。所以我已经创建下列表面:
I came across comments saying that I HAVE to pass a surface. so I have created following surface:
package com.example.fcloader;
import java.io.IOException;
import android.content.Context;
import android.view.SurfaceView;
import android.view.SurfaceHolder;
import android.hardware.Camera;
public class CameraSurfaceView extends SurfaceView implements SurfaceHolder.Callback
{
private SurfaceHolder holder;
private Camera camera;
public CameraSurfaceView(Context context)
{
super(context);
//Initiate the Surface Holder properly
this.holder = this.getHolder();
this.holder.addCallback(this);
this.holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void surfaceCreated(SurfaceHolder holder)
{
try
{
//Open the Camera in preview mode
this.camera = Camera.open();
this.camera.setPreviewDisplay(this.holder);
}
catch(IOException ioe)
{
ioe.printStackTrace(System.out);
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
// Now that the size is known, set up the camera parameters and begin
// the preview.
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(width, height);
camera.setParameters(parameters);
camera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder)
{
// Surface will be destroyed when replaced with a new screen
//Always make sure to release the Camera instance
camera.stopPreview();
camera.release();
camera = null;
}
public Camera getCamera()
{
return this.camera;
}
}
这是基本的表面,我在网上得到了code。我的问题是,我应该怎么改变,使这些东西与对方合作?
This is code of basic surface that I got online. My question is that What should I change to make these things work with each other?
推荐答案
在 camera.start preVIEW()
你写 preview.setCamera(摄像头)
设置摄像头。 preVIEW
是你的类的对象延伸 SurfaceView
和农具 SurfaceHolder.Callback
。
After camera.startPreview()
you have to write preview.setCamera(camera)
to set camera. preview
is the object of your class which extends SurfaceView
and implements SurfaceHolder.Callback
.
camera.startPreview();
preview.setCamera(camera);
这篇关于在空白surfaceView打开相机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!