1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package project.schafkopfzaehler_2;
-
- import android.content.Context;
- import android.hardware.Camera;
- import android.util.Log;
- import android.util.Size;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
-
- import java.io.IOException;
- import java.util.List;
-
- /** A basic Camera preview class */
- public class cameraPreview extends SurfaceView implements SurfaceHolder.Callback {
- private SurfaceHolder mHolder;
- private Camera mCamera;
-
- public cameraPreview(Context context, Camera camera) {
- super(context);
- mCamera = camera;
-
- // Install a SurfaceHolder.Callback so we get notified when the
- // underlying surface is created and destroyed.
- mHolder = getHolder();
- mHolder.addCallback(this);
-
- }
-
- public void surfaceCreated(SurfaceHolder holder) {
- // The Surface created, now tell the camera where to draw the preview.
- try {
- mCamera.setPreviewDisplay(holder);
- mCamera.startPreview();
- } catch (IOException e) {
- Log.d("CAMERA", "Error setting camera preview: " + e.getMessage());
- }
- }
-
- public void surfaceDestroyed(SurfaceHolder holder) {
- // empty. Take care of releasing the Camera preview in your activity.
- }
-
- public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
- // If your preview can change or rotate, take care of those events here.
- // Make sure to stop the preview before resizing or reformatting it.
-
- if (mHolder.getSurface() == null){
- // preview surface does not exist
- return;
- }
-
- if (mHolder == null){
- // holder does not exist
- return;
- }
-
- // Stop preview before making changes
- try {
- mCamera.stopPreview();
- } catch (Exception e){
- // ignore: tried to stop a non-existent preview
- }
-
- mCamera.setDisplayOrientation(90);
-
- // Get lowest possible resolution to minimize data traffic
- Camera.Parameters setting_param = mCamera.getParameters();
- List<Camera.Size> sizes = setting_param.getSupportedPictureSizes();
- int height;
- int width;
- for (Camera.Size size : sizes) {
- width = size.width;
- height = size.height;
-
- if (width >= 600 && width <= 800) {
- setting_param.setPictureSize(width, height);
- break;
- }
- }
-
- mCamera.setParameters(setting_param);
-
- // Start preview with new resolution
- try {
- mCamera.setPreviewDisplay(mHolder);
- mCamera.startPreview();
-
- } catch (Exception e){
- Log.d("CAMERA", "Error starting camera preview: " + e.getMessage());
- }
- }
- }
|