7

Tôi đang sử dụng máy ảnh trong ứng dụng của mình. Tôi chỉ sử dụng intent để bắt đầu camerahướng chân dung máy ảnh android

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

Những hình ảnh chụp tự động đi kèm trong landscape view. Làm cách nào để tạo camera để chụp ảnh trong portrait view

+0

tôi đang phải đối mặt với cùng một vấn đề, xin vui lòng cho tôi biết làm thế nào để bạn giải quyết điều này .... –

+0

@SivaK Thay vì sử dụng ứng dụng máy ảnh mặc định, tôi tạo ra cái nhìn camera của riêng tôi để chụp ảnh –

+1

Seshu Vinay - cảm ơn cho Câu trả lời của bạn, có bất kỳ mã mẫu hoặc blog nào để tạo chế độ xem máy ảnh riêng của chúng tôi –

Trả lời

12

Nếu thiết bị có v2.2 hoặc cao hơn, bạn có thể xoay hướng máy ảnh theo chiều dọc bằng cách sử dụng camera.setDisplayOrientation(90). Trong các thiết bị dưới đây để v2.2 máy ảnh sẽ chỉ hiển thị theo hướng ngang và do đó hình ảnh sẽ xuất hiện ở chế độ ngang. Kiểm tra các bài đăng này Using Camera in Portrait Orientation, Camera is wrong unless keyboard is open.

+0

Nơi để thêm này ... –

+1

Tôi không nghĩ rằng điều này sẽ làm việc mà không thực sự ghi đè các lớp máy ảnh - gọi một mục đích đã giành được ' t đủ tại đây – ekatz

2

hãy thử điều này.

 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

Ở đây, mã này phù hợp với mọi loại hướng được hỗ trợ trong ứng dụng máy ảnh Android [Chế độ dọc].

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

Cảm ơn Tim Castelijns –

Các vấn đề liên quan