Camera.SetDisplayOrientation(Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cuidado
deprecated
Defina a rotação no sentido horário da visualização em graus.
[Android.Runtime.Register("setDisplayOrientation", "(I)V", "")]
[System.Obsolete("deprecated")]
public void SetDisplayOrientation (int degrees);
[<Android.Runtime.Register("setDisplayOrientation", "(I)V", "")>]
[<System.Obsolete("deprecated")>]
member this.SetDisplayOrientation : int -> unit
Parâmetros
- degrees
- Int32
o ângulo em que a imagem será girada no sentido horário. Os valores válidos são 0, 90, 180 e 270.
- Atributos
Comentários
Defina a rotação no sentido horário da visualização em graus. Isso afeta os quadros de visualização e a imagem exibida após o instantâneo. Esse método é útil para aplicativos de modo retrato. Observe que a visualização das câmeras frontais é invertida horizontalmente antes da rotação, ou seja, a imagem é refletida ao longo do eixo vertical central do sensor da câmera. Assim, os usuários podem se ver olhando em um espelho.
Isso não afeta a ordem da matriz de bytes passada em PreviewCallback#onPreviewFrame
, imagens JPEG ou vídeos gravados. Esse método não pode ser chamado durante a visualização.
Se você quiser fazer com que a imagem da câmera seja exibida na mesma orientação da tela, use o código a seguir.
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camera) {
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
int rotation = activity.getWindowManager().getDefaultDisplay()
.getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 0; break;
case Surface.ROTATION_90: degrees = 90; break;
case Surface.ROTATION_180: degrees = 180; break;
case Surface.ROTATION_270: degrees = 270; break;
}
int result;
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
camera.setDisplayOrientation(result);
}
A partir do nível 14 da API, esse método pode ser chamado quando a visualização está ativa.
<b>Nota: </b>Antes do nível 24 da API, o valor padrão para orientação é 0. A partir do nível 24 da API, a orientação padrão será tal que os aplicativos no modo paisagem forçada terão a orientação de visualização correta, que pode ser um padrão de 0 ou 180. Os aplicativos que operam no modo retrato ou permitem alterar a orientação ainda devem chamar esse método após cada alteração de orientação para garantir a exibição de visualização correta em todos os casos.
Documentação Java para android.hardware.Camera.setDisplayOrientation(int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.