Camera.Parameters.SetRotation(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
Define o ângulo de rotação no sentido horário em graus relativos à orientação da câmera.
[Android.Runtime.Register("setRotation", "(I)V", "GetSetRotation_IHandler")]
[System.Obsolete("deprecated")]
public virtual void SetRotation(int rotation);
[<Android.Runtime.Register("setRotation", "(I)V", "GetSetRotation_IHandler")>]
[<System.Obsolete("deprecated")>]
abstract member SetRotation : int -> unit
override this.SetRotation : int -> unit
Parâmetros
- rotation
- Int32
O ângulo de rotação em graus relativos à orientação da câmera. A rotação só pode ser 0, 90, 180 ou 270.
- Atributos
Exceções
se o valor de rotação for inválido.
Comentários
Define o ângulo de rotação no sentido horário em graus relativos à orientação da câmera. Isso afeta as imagens retornadas de JPEG PictureCallback. O driver da câmera pode definir a orientação no cabeçalho EXIF sem girar a imagem. Ou o driver pode girar a imagem e a miniatura EXIF. Se a imagem jpeg for girada, a orientação no cabeçalho EXIF estará ausente ou 1 (a linha nº 0 é superior e a coluna #0 é esquerda).
Se os aplicativos quiserem girar a imagem para corresponder à orientação do que os usuários veem, os aplicativos devem usar android.view.OrientationEventListener e android.hardware.Camera.CameraInfo. O valor de OrientationEventListener é relativo à orientação natural do dispositivo. CameraInfo.orientation é o ângulo entre a orientação da câmera e a orientação natural do dispositivo. A soma dos dois é o ângulo de rotação para a câmera voltada para trás. A diferença dos dois é o ângulo de rotação para a câmera frontal. Observe que as imagens JPEG de câmeras frontais não são espelhadas como na exibição de visualização.
Por exemplo, suponha que a orientação natural do dispositivo seja retrato. O dispositivo é girado 270 graus no sentido horário, portanto, a orientação do dispositivo é 270. Suponha que um sensor de câmera voltado para trás seja montado na paisagem e o lado superior do sensor da câmera esteja alinhado com a borda direita da tela na orientação natural. Portanto, a orientação da câmera é 90. A rotação deve ser definida como 0 (270 + 90).
O código de referência é o seguinte.
public void onOrientationChanged(int orientation) {
if (orientation == ORIENTATION_UNKNOWN) return;
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
orientation = (orientation + 45) / 90 * 90;
int rotation = 0;
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
rotation = (info.orientation - orientation + 360) % 360;
} else { // back-facing camera
rotation = (info.orientation + orientation) % 360;
}
mParameters.setRotation(rotation);
}
Java documentação para android.hardware.Camera.Parameters.setRotation(int).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
Confira também
- OrientationEventListener
- <xref:Android.Hardware.Camera.GetCameraInfo(System.Int32%2c+Android.Hardware.Camera.CameraInfo)>