2013-01-15 25 views
0

爲了預覽相機,我在下面編寫了代碼段。我無法預覽。你能幫我解決這個問題嗎?通過Android應用程序的相機預覽

我已經配置了我的應用程序的權限;

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 

我創建了表面的地方

<SurfaceView 
    android:id="@+id/cameraView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" /> 

我已經寫了下面的代碼片段預覽相機;

public class MainActivity extends Activity { 

SurfaceView surfaceView; 
SurfaceHolder surfaceHolder; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     getWindow().setFormat(PixelFormat.UNKNOWN); 
     surfaceView = (SurfaceView)findViewById(R.id.cameraView); 
     surfaceHolder = surfaceView.getHolder(); 
} 

private void preview () { 

    try { 
      camera.setPreviewDisplay(surfaceHolder); 
      camera.startPreview(); 
    } catch (IOException void_) { 
     ; 
    } 
} 

回答

0

在4.0之前,Google提供的Android SDK不提供任何超出替代動畫的相機模擬。由於Google尚未提供工作實施(或甚至可提供哪個日期)。

有某些鏈接可以幫助您達到您的要求。 請參閱thisthis鏈接。

希望它可以幫助你:)

+0

這是不正確的。從android 4.0開始,您可以使用網絡攝像頭作爲模擬器中的相機預覽。 – Shafi

+0

@Shafi我appologies.Thanks指向我在正確的方向。我已經更新了我的答案:) – AndroidLearner

+0

現在看起來更好:-) – Shafi

0

實施這一類相機的預覽,並呼籲它的構造在活動的onCreate方法。

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { 
    private SurfaceHolder mSurfaceHolder; 
    private Camera mCamera; 

    @SuppressWarnings("deprecation") 
    public CameraPreview(Context context, Camera camera) { 
     super(context); 
     this.mCamera = camera; 
     this.mSurfaceHolder = this.getHolder(); 
     this.mSurfaceHolder.addCallback(this); 
     this.mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
    } 

    public void surfaceCreated(SurfaceHolder surfaceHolder) { 
     try { 
      mCamera.setPreviewDisplay(surfaceHolder); 
      mCamera.startPreview(); 
     } catch (IOException e) { 
      // left blank for now 
     } 
    } 


    public void surfaceDestroyed(SurfaceHolder surfaceHolder) { 
     mCamera.stopPreview(); 
     mCamera.release(); 
    } 


    public void surfaceChanged(SurfaceHolder surfaceHolder, int format, 
      int width, int height) { 
     // start preview with new settings 
     try { 
      mCamera.setPreviewDisplay(surfaceHolder); 
      mCamera.startPreview(); 
     } catch (Exception e) { 
      // intentionally left blank for a test 
     } 
    } 
} 
1

可以使用捕捉相機圖像..

  1. 意向(默認開啓相機和拍攝圖像)
  2. 相機API(獲取圖像預覽,還可以自定義相機功能)

請閱讀本文一步一步的解決方案,我發現這是非常有幫助

Android Camera API - Tutorial

讓我知道,如果你有這個麻煩,我已經做已經

編輯:

可以使用管理政策

檢查禁用相機official document here帶有樣本代碼 也this文章可能會幫助您

+0

我如何禁用相機作爲管理員? –

+0

是否可以禁用相機,並且任何應用程序無法打開它? (用android設備管理) –

+0

PL檢查更新的答案 – swiftBoy