2017-01-19 79 views
1

我試圖修改Google的camera2Basic示例代碼。我刪除了包含「圖片」和「信息」按鈕的<FrameLayout/>,試圖使全屏顯示<TextureView/>。但是,預覽不會填滿整個屏幕,其下方仍有一個黑色條。我相信這與它附帶的AutoFitTextureView有關,但由於它們沒有提供任何有關它的工作原理的文檔,所以我無法對其進行修改。全屏預覽camera2Basic示例項目

回答

2

我在Galaxy Note 5上注意到了這個完全相同的問題,我相信它和他們設置寬高比的方式有關 - 顯然這個API有一些限制(或者只是很少記錄)。我通過不在AutoFitTextureView上設置縱橫比來修復它。

在這個例子中

具體而言,在該方法setCameraOutput(INT寬度,INT高度),簡單地除去這些代碼行(行574 - 580在您的示例):

if (orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    mTextureView.setAspectRatio(mPreviewSize.getWidth(),mPreviewSize.getHeight()); 
} else { 
    mTextureView.setAspectRatio(mPreviewSize.getHeight(),mPreviewSize.getWidth()); 
} 

相信在該示例他們試圖限制捕捉區域,這可能會導致您看到的黑條(可能是因爲您正在建造一個比開發人員使用的設備更大的設備)。

+0

這樣做的伎倆,謝謝!這是否意味着這不適用於所有設備? – Carpetfizz

+1

我不認爲API本身受設備的限制 - 這是他們計算和假設寬高比(他們假定1920 * 1080分辨率)的方式,這會導致您相信這一點。這是我從最後的猜測,因爲我沒有測試它。但既然它也適合你,我會說我的預感是正確的 – ucsunil

+0

嘿,當我這樣做時,預覽框架拉伸和傾斜 – Carpetfizz