[英]Kindle fire HD shows my app in portrait when i am requiring landscape
[英]Use camera in landscape when my app is in portrait
我已經嘗試過各種方式來實現我想要的行為,但似乎沒有任何工作。
我的應用程序被鎖定在縱向模式(我不想要橫向UI)但我希望能夠切換相機顯示以交替顯示縱向和橫向模式的相機預覽 。
我對拍攝圖像不感興趣。
要以縱向顯示預覽,我只需:
camera.setDisplayOrientation(90);
我的預覽工作正常,但是,當我嘗試在橫向模式下顯示相機預覽時,我會:
camera.setDisplayOrientation(0);
並且預覽實際上是旋轉的,但是來自相機的圖像沒有旋轉,最終結果只是旋轉到橫向的肖像圖像。
我嘗試過各種方式:
1)使用parameters.setRotation()
)旋轉相機,但這只影響保存的最終圖像,與預覽無關;
2)設置parameters.set("orientation", "landscape")
但這似乎沒有效果(可能是一個舊的,尚未支持的命令?);
3)設置下面方法的每個組合,但沒有,有效旋轉圖像的唯一方法來自相機似乎是物理旋轉我的設備...
這是我的意思的實際演示:
正如您所看到的, parameters.setRotation()
對預覽沒有影響 ,這在縱向時是正確的,但只是在橫向旋轉,因為相機不會自行旋轉,而只是旋轉縱向圖像。
那么,當應用程序處於縱向狀態時,有沒有辦法在橫向顯示相機預覽?
謝謝。
查看此方法以設置相機的方向。 參數orientation
是Display.getRotation(),您可以根據您的要求更改設置:
public void setCameraOrientation(int orientation) {
int orientationDegree = 0;
switch (orientation) {
case Surface.ROTATION_0:
orientationDegree = 0;
break;
case Surface.ROTATION_90:
orientationDegree = 90;
break;
case Surface.ROTATION_180:
orientationDegree = 180;
break;
case Surface.ROTATION_270:
orientationDegree = 270;
break;
}
int displayOrientation = (cameraInfo.orientation - orientationDegree + 360) % 360;
camera.setDisplayOrientation(displayOrientation);
Camera.Parameters parameters = camera.getParameters();
parameters.setRotation(displayOrientation);
camera.setParameters(parameters);
}
對於整個范圍內檢查出我的相機演示應用程序在這里 。 特別是CameraPreview
類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.