2013-01-07 66 views
0

從我當前的搜索中,Android相機意圖不能指定pictureSize。 由於我的應用程序需要快速,我不想在SD卡中保存大尺寸的圖片,然後將其加載到小尺寸的位圖。我認爲這需要時間。另外,我需要一個灰度圖像,而不是一個彩色位圖。我知道如何轉換它們,但又需要時間。Android相機意圖指定pictureSize?

我打算拍攝一張指定尺寸的照片,並直接處理存儲器中YUV數據中的Y部分(灰度)。

那麼這是否意味着我必須使用相機API編寫我自己的相機應用程序?

有沒有什麼好的例子? 我到目前爲止檢查過的很多例子經常不考慮自動對焦。 我添加功能的XML文件:

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

我添加了自動對焦模式,相機參數。

parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 

但它不起作用。 因此,我在相機按下按鈕之前立即添加自動對焦命令。

preview.camera.autoFocus(myAutoFocusCallback); 
preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback); 

但自動對焦需要一些時間,直到預覽變得清晰,拍照片已執行。 另外,即使我沒有按相機按鈕,我也希望它自動對焦。 我怎樣才能很好地把自動對焦?

有沒有什麼好的例子? 謝謝。

回答

2

Android開發者手冊裏有關於製作相機應用教程:http://developer.android.com/guide/topics/media/camera.html#custom-camera

你並不需要添加的攝像頭,並在清單中camera.autofocus特徵的。後者意味着第一個 - 儘管這不是一個真正的問題。

FOCUS_MODE_AUTO並不意味着它的攝像機會持續對焦,只是它會在某個時候使用自動對焦(而不是手動對焦)。如果您想讓相機自行對焦,則需要FOCUS_MODE_CONTINUOUS_PICTURE。這在documentation中有解釋。

至於在鏡頭前拍照的重點是:試着從你的autoFocusCallback像這裏面調用takePicture():

private AutoFocusCallback myAutoFocusCallback = new AutoFocusCallback() { 
    @Override 
    public void onAutoFocus(boolean success, Camera camera) { 
     if (success) { 
       camera.takePicture(shutterCallback, rawCallback, jpegCallback); 
      } 
    } 
};