Created
December 16, 2014 02:45
-
-
Save Nunocky/3dbca6acd72305643e1b to your computer and use it in GitHub Desktop.
Android camera SurfaceView from libGDX tutorial
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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