Projekt Schafkopfpunktezähler: Erster Prototyp einer App, die dem Benutzer die Notwendigkeit des Punktezählens beim Schafkopfspiel abnimmt.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cameraPreview.java 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package project.schafkopfzaehler_2;
  2. import android.content.Context;
  3. import android.hardware.Camera;
  4. import android.util.Log;
  5. import android.util.Size;
  6. import android.view.SurfaceHolder;
  7. import android.view.SurfaceView;
  8. import java.io.IOException;
  9. import java.util.List;
  10. /** A basic Camera preview class */
  11. public class cameraPreview extends SurfaceView implements SurfaceHolder.Callback {
  12. private SurfaceHolder mHolder;
  13. private Camera mCamera;
  14. public cameraPreview(Context context, Camera camera) {
  15. super(context);
  16. mCamera = camera;
  17. // Install a SurfaceHolder.Callback so we get notified when the
  18. // underlying surface is created and destroyed.
  19. mHolder = getHolder();
  20. mHolder.addCallback(this);
  21. }
  22. public void surfaceCreated(SurfaceHolder holder) {
  23. // The Surface created, now tell the camera where to draw the preview.
  24. try {
  25. mCamera.setPreviewDisplay(holder);
  26. mCamera.startPreview();
  27. } catch (IOException e) {
  28. Log.d("CAMERA", "Error setting camera preview: " + e.getMessage());
  29. }
  30. }
  31. public void surfaceDestroyed(SurfaceHolder holder) {
  32. // empty. Take care of releasing the Camera preview in your activity.
  33. }
  34. public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
  35. // If your preview can change or rotate, take care of those events here.
  36. // Make sure to stop the preview before resizing or reformatting it.
  37. if (mHolder.getSurface() == null){
  38. // preview surface does not exist
  39. return;
  40. }
  41. if (mHolder == null){
  42. // holder does not exist
  43. return;
  44. }
  45. // Stop preview before making changes
  46. try {
  47. mCamera.stopPreview();
  48. } catch (Exception e){
  49. // ignore: tried to stop a non-existent preview
  50. }
  51. mCamera.setDisplayOrientation(90);
  52. // Get lowest possible resolution to minimize data traffic
  53. Camera.Parameters setting_param = mCamera.getParameters();
  54. List<Camera.Size> sizes = setting_param.getSupportedPictureSizes();
  55. int height;
  56. int width;
  57. for (Camera.Size size : sizes) {
  58. width = size.width;
  59. height = size.height;
  60. if (width >= 600 && width <= 800) {
  61. setting_param.setPictureSize(width, height);
  62. break;
  63. }
  64. }
  65. mCamera.setParameters(setting_param);
  66. // Start preview with new resolution
  67. try {
  68. mCamera.setPreviewDisplay(mHolder);
  69. mCamera.startPreview();
  70. } catch (Exception e){
  71. Log.d("CAMERA", "Error starting camera preview: " + e.getMessage());
  72. }
  73. }
  74. }