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 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. // deprecated setting, but required on Android versions prior to 3.0
  22. // mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  23. }
  24. public void surfaceCreated(SurfaceHolder holder) {
  25. // The Surface has been created, now tell the camera where to draw the preview.
  26. try {
  27. mCamera.setPreviewDisplay(holder);
  28. mCamera.startPreview();
  29. } catch (IOException e) {
  30. Log.d("CAMERA", "Error setting camera preview: " + e.getMessage());
  31. }
  32. }
  33. public void surfaceDestroyed(SurfaceHolder holder) {
  34. // empty. Take care of releasing the Camera preview in your activity.
  35. }
  36. public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
  37. // If your preview can change or rotate, take care of those events here.
  38. // Make sure to stop the preview before resizing or reformatting it.
  39. if (mHolder.getSurface() == null){
  40. // preview surface does not exist
  41. return;
  42. }
  43. if (mHolder == null){
  44. // holder does not exist
  45. return;
  46. }
  47. // stop preview before making changes
  48. try {
  49. mCamera.stopPreview();
  50. } catch (Exception e){
  51. // ignore: tried to stop a non-existent preview
  52. }
  53. mCamera.setDisplayOrientation(90);
  54. Camera.Parameters setting_param = mCamera.getParameters();
  55. List<Camera.Size> sizes = setting_param.getSupportedPictureSizes();
  56. Camera.Size mSize;
  57. int height;
  58. int width;
  59. for (Camera.Size size : sizes) {
  60. width = size.width;
  61. height = size.height;
  62. //Log.d("SHIGGY", "Available resolution" + size.width + size.height);
  63. if (width >= 600 && width <= 800) {
  64. setting_param.setPictureSize(width, height);
  65. break;
  66. }
  67. }
  68. mCamera.setParameters(setting_param);
  69. // setting_param.setPreviewSize(320,480);
  70. // start preview with new settings
  71. try {
  72. mCamera.setPreviewDisplay(mHolder);
  73. mCamera.startPreview();
  74. } catch (Exception e){
  75. Log.d("CAMERA", "Error starting camera preview: " + e.getMessage());
  76. }
  77. }
  78. }