2010-03-16 30 views
14

Fotoğraf makinesinin önizlemesini çalıştırıyorumAndroid - Kamera Önizleme

Bu benim kodum ve hatayı atmaz ama ekran hala siyahtır. Herhangi bir fikir?

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(); 

çok erken son üç satırı aradığınız

<?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> 

cevap

46

camerapreview.xml. setPreviewDisplay() numaralı telefonu aramadan önce yüzeyin hazırlanmasını beklemeniz ve startPreview() numaralı telefonu aramadan önce yüzeyin (surfaceChanged()) ölçülmesini beklemek zorundasınız. This project, ihtiyacınız olan her şeye sahiptir.

+0

Bu harika çalışıyor. Ek soru. Android 2.3 ve 3.0'da, cihazı döndürdüğümüzde önizleme bozuk görünüyor. Bunun için de bir çözümün var mı? –

+1

@NileshPawar: Bu durumda "çarpık" ile ne demek istediğini bilmiyorum. FWIW, şu anki kamera çalışmam şu adreste: https://github.com/commonsguy/cwac-camera – CommonsWare

+0

Oh wow. Yeni kodunuzdan Kamera-demov9 sorunu çözdü! Ne yaptığımı farklı bir şekilde alacağım ve herkesin yararına buraya yükleyeceğim. Google belgeselinin bu alanlarda üzücü olduğu üzücü. –

İlgili konular