Manni
- Forum-Beiträge: 9
09.03.2012, 21:37:41 via Website
09.03.2012 21:37:41 via Website
Hallo Leute,
wie der Titel schon sagt, bekomme ich mein Kamera-Preview-Bild mit einer 90 Grad Rotierung angezeigt.
Ohne das ich durch irgendwelche Einstellungen dieses Verhalten absichtlich provozieren würde.
Hier mein Code:
Hat jemand einen Vorschlag bzw. das kann doch nicht normal sein, dass ich das Bild wieder zurück drehen muss?
wie der Titel schon sagt, bekomme ich mein Kamera-Preview-Bild mit einer 90 Grad Rotierung angezeigt.
Ohne das ich durch irgendwelche Einstellungen dieses Verhalten absichtlich provozieren würde.
Hier mein Code:
1package de.test;
2
3import java.io.IOException;
4
5import android.content.Context;
6import android.hardware.Camera;
7import android.util.Log;
8import android.view.SurfaceHolder;
9import android.view.SurfaceView;
10
11public class CameraView extends SurfaceView implements SurfaceHolder.Callback {
12 private final String LOG = "CameraView";
13
14 private Camera camera;
15 private SurfaceHolder surfaceHolder;
16
17 public CameraView(Context context) {
18 super(context);
19
20 surfaceHolder = getHolder();
21 surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
22 }
23
24 public void stopCamera() {
25 if(camera != null) {
26 camera.stopPreview();
27 camera.release();
28 }
29 }
30
31 @Override
32 public void surfaceCreated(SurfaceHolder holder) {
33 camera = Camera.open();
34 }
35
36 @Override
37 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
38 camera.stopPreview();
39
40 Camera.Parameters params = camera.getParameters();
41 params.setPictureSize(width, height);
42 camera.setParameters(params);
43
44 try {
45 camera.setPreviewDisplay(holder);
46 } catch (IOException e) {
47 Log.d(LOG + ".CameraView", "error to init camera");
48 e.printStackTrace();
49 }
50
51 camera.startPreview();
52 }
53
54 @Override
55 public void surfaceDestroyed(SurfaceHolder holder) {
56 }
57
58}
2
3import java.io.IOException;
4
5import android.content.Context;
6import android.hardware.Camera;
7import android.util.Log;
8import android.view.SurfaceHolder;
9import android.view.SurfaceView;
10
11public class CameraView extends SurfaceView implements SurfaceHolder.Callback {
12 private final String LOG = "CameraView";
13
14 private Camera camera;
15 private SurfaceHolder surfaceHolder;
16
17 public CameraView(Context context) {
18 super(context);
19
20 surfaceHolder = getHolder();
21 surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
22 }
23
24 public void stopCamera() {
25 if(camera != null) {
26 camera.stopPreview();
27 camera.release();
28 }
29 }
30
31 @Override
32 public void surfaceCreated(SurfaceHolder holder) {
33 camera = Camera.open();
34 }
35
36 @Override
37 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
38 camera.stopPreview();
39
40 Camera.Parameters params = camera.getParameters();
41 params.setPictureSize(width, height);
42 camera.setParameters(params);
43
44 try {
45 camera.setPreviewDisplay(holder);
46 } catch (IOException e) {
47 Log.d(LOG + ".CameraView", "error to init camera");
48 e.printStackTrace();
49 }
50
51 camera.startPreview();
52 }
53
54 @Override
55 public void surfaceDestroyed(SurfaceHolder holder) {
56 }
57
58}
Hat jemand einen Vorschlag bzw. das kann doch nicht normal sein, dass ich das Bild wieder zurück drehen muss?
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.