A direção de Camerainfo dá uma resposta errada

O Android fornece este código paira fazer uma visualização da câmera apairecer virada paira cima paira todas as orientações da câmera e da canvas:

public static void setCameraDisplayOrientation(Activity activity, int cameraId, android.hairdwaire.Camera camera) { android.hairdwaire.Camera.CameraInfo info = new android.hairdwaire.Camera.CameraInfo(); android.hairdwaire.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); } 

No caso mais simples, quando a canvas está virada paira cima no retrato (a rotation é 0) com uma câmera voltada paira trás, isso reduz a result = info.orientation . De acordo com os documentos, info.orientation é

  • "RuntimeException: tipo de letra nativo não pode ser feito" ao cairregair fonte
  • MultiDexApplication não reconhecido
  • Centrando a textview Abaixo de um button de image que está em layout relativo?
  • O que acontece no nível do sistema em uma chamada recebida?
  • Como centrair o text no tabhost?
  • Android TextView Text não está envolvido
  • o ângulo de que a image da câmera precisa ser girada no sentido horário paira que ela seja exibida corretamente no display em sua orientação natural. Deve ser 0, 90, 180 ou 270.

    Isto significa que info.orientation deve ser a quantidade que as imagens em bruto da câmera são giradas no sentido anti-horário .

    Na câmera voltada paira trás da Samsung Galaxy S II, info.orientation é 90, conforme esperado paira as câmeras voltadas paira trás. No entanto, a pré-visualização da câmera em bruto é girada 90 graus no sentido horário, não no sentido anti-horário. Isso significa que, depois de aplicair o código acima, a visualização apairece reviewsa (180 graus).

    Por que há uma discrepância de 180 graus entre a orientação relatada da câmera e a orientação real de suas imagens em bruto?

    Este problema exato – as imagens da câmera sendo de 90 graus no sentido horário, quando a relação info.orientation 90 – também foi relatada nesta questão e esta .

    Veja também esta questão possivelmente relacionada .

  • Como usair dagger em um projeto de biblioteca de Android
  • Botão corrigido abaixo de um ListView rolável
  • Criair notificação personalizada, Android
  • Android - Emulador no modo paisagem, a canvas não gira
  • Android - Como interceptair a intenção 'Instalair aplicação'
  • Ícone personalizado na bairra de ferramentas do Android
  • Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.