2015-06-10 43 views
0

我想推出原生Android相機並將圖像保存在指定位置。問題出在我點擊捕捉照片後,預覽會顯示Save/Discard選項。點擊保存後,原生相機將在橫向上旋轉,並且不會顯示我拍攝的圖像。爲什麼原生相機在保存拍攝圖像後旋轉

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      intent.setPackage(defaultCamera); 
      File f = new File(android.os.Environment.getExternalStorageDirectory(), "temp.jpg"); 
      intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
      startActivityForResult(intent, 1); 

回答

0

這是因爲活動被重新創建因此數據不再存在了。你無法控制是否會發生。你在onActivityResult上捕捉圖片嗎?如果是這樣,您可以嘗試將路徑保存在保留的片段中。

0

某些設備在保存圖像之前先旋轉圖像。

檢查照片的Exif數據,特別是尋找

ExifInterface exifInterf = new ExifInterface(SourceFileName); 
int exifOrientation = exifInterf.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); 

switch (exifOrientation) { 
    case ExifInterface.ORIENTATION_ROTATE_270: 
    rotate = 270; 
    break; 
    case ExifInterface.ORIENTATION_ROTATE_180: 
    rotate = 180; 
    break; 
    case ExifInterface.ORIENTATION_ROTATE_90: 
    rotate = 90; 
    break; 
} 

Matrix matrix = new Matrix(); 
matrix.postRotate(rotate); 
bitmap = Bitmap.createBitmap(bitmap , 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); 
相關問題