To open a camera with out any error in surface view.
package com.camera.preview.
import java.io.IOException;
import java.util.Vector;
import android.content.Context;
import android.hardware.Camera;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class CameraPreview extends SurfaceView implements
SurfaceHolder.Callback {
public static final String TAG = "CameraPreview";
private SurfaceHolder mHolder;
private Camera mCamera;
boolean previewing = false;
private boolean isPreviewRunning = false;
Vector<NearByLocation> flag = new Vector<NearByLocation>();
CameraPreview(Context context) {
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
setFocusable(true);
setWillNotDraw(false);
}
public void surfaceCreated(SurfaceHolder holder) {
try {
System.out.println("surfaceCreated");
if((!isPreviewRunning) && mCamera == null )
mCamera = Camera.open();
mCamera.setPreviewDisplay(holder);
isPreviewRunning=true;
} catch (IOException e) {
System.out.println(e);
mCamera.release();
isPreviewRunning=false;
mCamera = null;
e.printStackTrace();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
if (isPreviewRunning && mCamera != null) {
if (mCamera != null) {
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
isPreviewRunning = false;
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
if (isPreviewRunning) {
mCamera.stopPreview();
}
try {
mCamera.startPreview();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
isPreviewRunning = true;
mCamera.startPreview();
}
}
package com.camera.preview.
import java.io.IOException;
import java.util.Vector;
import android.content.Context;
import android.hardware.Camera;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class CameraPreview extends SurfaceView implements
SurfaceHolder.Callback {
public static final String TAG = "CameraPreview";
private SurfaceHolder mHolder;
private Camera mCamera;
boolean previewing = false;
private boolean isPreviewRunning = false;
Vector<NearByLocation> flag = new Vector<NearByLocation>();
CameraPreview(Context context) {
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
setFocusable(true);
setWillNotDraw(false);
}
public void surfaceCreated(SurfaceHolder holder) {
try {
System.out.println("surfaceCreated");
if((!isPreviewRunning) && mCamera == null )
mCamera = Camera.open();
mCamera.setPreviewDisplay(holder);
isPreviewRunning=true;
} catch (IOException e) {
System.out.println(e);
mCamera.release();
isPreviewRunning=false;
mCamera = null;
e.printStackTrace();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
if (isPreviewRunning && mCamera != null) {
if (mCamera != null) {
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
isPreviewRunning = false;
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
if (isPreviewRunning) {
mCamera.stopPreview();
}
try {
mCamera.startPreview();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
isPreviewRunning = true;
mCamera.startPreview();
}
}
No comments:
Post a Comment