三星Galaxy s2总是把相机视为景观?

时间:2014-05-15 09:36:18

标签: java android android-layout camera landscape

我的应用要求用户拍照并保存。

我注意到三星Galaxy S2拍了一张肖像照片

但是当我将它保存到服务器时,我只能在服务器中看到它。

(即使它是以肖像拍摄的)。

使用其他手机(三星S4,Nexus 5)并不会发生这种情况。

当我看到照片库时,我看到了照片中的照片。

更新

奇怪的是,在我的java代码中,它似乎是纵向方向

所以我真的不明白:

            if (getContext().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
                //a             
}else {
                //b
            }

但是我看到了一些奇怪的东西:使用S2相机时,设置和其他原生对话都是风景。见附件:

UPDATE2

我已检查exif.getAttributeInt(ExifInterface.TAG_ORIENTATION并获得6(ExifInterface.ORIENTATION_ROTATE_90)

所以我试图将其设置为ORIENTATION_ROTATE_270或ORIENTATION_NORMAL

但它没有帮助

    ExifInterface exif;
    try {
      exif = new ExifInterface(imageFilename);
      int orientation =
          exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
      exif.setAttribute(ExifInterface.TAG_ORIENTATION,
          String.valueOf(ExifInterface.ORIENTATION_ROTATE_270));
      exif.saveAttributes();
      orientation =
          exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
      boolean b = orientation == Configuration.ORIENTATION_LANDSCAPE;

    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

enter image description here

1 个答案:

答案 0 :(得分:0)

你是对的。 Camera.Parameters.setRotation()的文档非常清楚:

  

相机驱动程序可以在EXIF标题中设置方向   旋转图片。或者司机可以旋转图片和   EXIF缩略图。如果Jpeg图片旋转,则方向在   EXIF标题将丢失或1(行#0是顶部,列#0是左侧   侧)。

解决方案是在上传之前或者在服务器上实际执行图片的旋转(选择取决于您的产品要求)。您可以使用Java MediaUtil库,例如https://stackoverflow.com/a/15302674/192373