2016-10-08 22 views
0

我正在嘗試獲取相機的全屏預覽。我讀了camera2的文檔,其中說Each Surface has to be pre-configured with an appropriate size and format (if applicable) to match the sizes and formats available from the camera device.到目前爲止,這是我所瞭解的。請糾正我,如果我的任何的理解是錯誤的:如何使用camera2獲取全屏紋理視圖?

  1. 紋理視圖和預覽緩衝需要是相同的縱橫比。它們可以是不同的分辨率,但如果您不希望預覽看起來失真,則寬高比必須相同。

  2. 您應該將紋理視圖的緩衝區大小設置爲最佳選擇的預覽大小。 camera2basic演示似乎與texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()一致。

我的問題是,一旦你匹配的紋理視圖的縱橫比和尺寸和預覽是相同的,你怎麼縮放紋理視圖,使其適合全屏?

camera2basic演示的configureTransform方法似乎將TextureView轉換爲預覽大小,但不會使其顯示全屏。如何計算使TextureView全屏顯示的正確比例因子?

回答

0

你可以讓你的TextureView在活動的佈局中填充屏幕。然後,您需要調整configureTransform()方法,以考慮全屏TextureView和最接近方面預覽大小之間的寬高比差異;基本上你需要實現通常的字母或柱式效果。

當然,如果碰巧存在匹配的寬高比,您可以直接使用它,但這不太可能。