2010-03-16 12 views
14

ich versuche die Kamera VorschauAndroid - Kamera Vorschau

Das ist mein Code und es wirft keinen Fehler, aber der Bildschirm ist immer noch schwarz. Irgendwelche Ideen?

this.setContentView(R.layout.camerapreview);  
SurfaceView cameraSurface = (SurfaceView)findViewById(R.id.cpPreview); 
SurfaceHolder holder = cameraSurface.getHolder(); 
holder.addCallback(this); 
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
this.camera = Camera.open(); 
this.camera.setPreviewDisplay(holder); 
this.camera.startPreview(); 

camerapreview.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <SurfaceView 
     android:id="@+id/cpPreview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"> 

    </SurfaceView> 
</LinearLayout> 

Antwort

46

Sie sind zu früh, um die letzten drei Zeilen aufrufen. Sie müssen darauf warten, dass die Oberfläche vorbereitet wird, bevor Sie setPreviewDisplay() anrufen, und Sie müssen auf die Größe der Oberfläche warten (surfaceChanged()), bevor Sie startPreview() anrufen. This project hat, was Sie brauchen.

+0

Das funktioniert super. Zusätzliche Frage Unter Android 2.3 und 3.0 scheint die Vorschau verzerrt zu sein, wenn wir das Gerät drehen. Hast du zufällig auch eine Lösung? –

+1

@NileshPawar: Ich weiß nicht, was Sie in dieser Situation mit "verzerrt" meinen. FWIW, meine aktuelle Kameraarbeit ist: https://github.com/commonsguy/cwac-camera – CommonsWare

+0

Oh wow. die Camera-demov9 von deinem neuen Code löste das Problem !! Ich werde einen Unterschied von dem, was ich gemacht habe, erhalten und es hier zum Wohle aller veröffentlichen. Traurig, dass Google-Dokumentation in diesen Bereichen obskur ist. –

Verwandte Themen