7

Używam aparatu w mojej aplikacji. Jestem po prostu za pomocą intent zacząć aparatowiorientacja na portret aparatu Android

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(cameraIntent, 101); 

Przechwycony obraz automatycznie przychodzi landscape view. Jak zrobić camera do robienia zdjęć w portrait view

+0

jestem stoi ten sam problem, proszę mi powiedzieć, w jaki sposób rozwiązać ten .... –

+0

@SivaK Zamiast domyślną aplikację aparatu, tworzę własny pogląd aparat do robienia zdjęć –

+1

Seshu VINAY - dzięki za twoja odpowiedź, czy jest jakiś przykładowy kod lub blog do stworzenia naszego własnego widoku kamery –

Odpowiedz

12

Jeśli urządzenie ma v2.2 lub powyżej można obrócić orientację kamery do portretu przy użyciu camera.setDisplayOrientation(90). W urządzeniach poniżej wersji v2.2 aparat będzie wyświetlać tylko w orientacji poziomej, a obraz będzie przechodzić w krajobraz. Sprawdź te posty: Using Camera in Portrait Orientation, Camera is wrong unless keyboard is open.

+0

Gdzie to dodać ... –

+1

Nie sądzę, że to zadziała bez faktycznego przesłonięcia klasy kamery - wywołanie intencji wygranej " wystarczy tu – ekatz

2

Spróbuj tego.

 Parameters param = mCamera.getParameters(); 

     switch(mDisplay.getRotation()){ 
     case Surface.ROTATION_0: 
      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO){ 
       mCamera.setDisplayOrientation(90); 
       Log.d("Rotation_0", "whatever"); 
      } 
      else{ 
       Log.d("Rotation_0", "whatever"); 
       param.setRotation(90); 
       mCamera.setParameters(param); 
      } 
      break; 
     case Surface.ROTATION_90: 
      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO){ 
       mCamera.setDisplayOrientation(0); 
       Log.d("Rotation_0", "whatever"); 
      } 
      else{ 
       Log.d("Rotation_90", "whatever"); 
       param.setRotation(0); 
       mCamera.setParameters(param); 
      } 
      break; 
     } 
1

Oto kod ten jest odpowiedni dla wszystkich typów orientacji, które są obsługiwane w Android aparatu [Tryb PORTRET] też.

int rotation = this.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; 

} 
+0

Dzięki Tim Castelijns –

Powiązane problemy