Skip to content

Instantly share code, notes, and snippets.

@Nunocky
Created December 16, 2014 02:45
Show Gist options
  • Save Nunocky/3dbca6acd72305643e1b to your computer and use it in GitHub Desktop.
Save Nunocky/3dbca6acd72305643e1b to your computer and use it in GitHub Desktop.
Android camera SurfaceView from libGDX tutorial
package org.nunocky.gdxcamera.android;
import android.content.Context;
import android.hardware.Camera;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;
;
//import android.graphics.Camera;
/**
* Created by nunokawa on 14/12/11.
*/
public class CameraSurface extends SurfaceView implements SurfaceHolder.Callback {
private static final String TAG = "CameraSurface";
private Camera camera;
public CameraSurface(Context context) {
super(context);
// We're implementing the Callback interface and want to get notified
// about certain surface events.
getHolder().addCallback(this);
// We're changing the surface to a PUSH surface, meaning we're receiving
// all buffer data from another component - the camera, in this case.
getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder) {
// Once the surface is created, simply open a handle to the camera hardware.
camera = Camera.open();
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// This method is called when the surface changes, e.g. when it's size is set.
// We use the opportunity to initialize the camera preview display dimensions.
Camera.Parameters p = camera.getParameters();
p.setPreviewSize(width, height);
camera.setParameters(p);
// We also assign the preview display to this surface...
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
// Once the surface gets destroyed, we stop the preview mode and release
// the whole camera since we no longer need it.
camera.stopPreview();
camera.release();
camera = null;
}
public Camera getCamera() {
return camera;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment