2010-11-18 109 views
0

我的应用程序的格式都是纵向模式。奇怪的是,当我以纵向模式拍摄照片时,它将显示在ImageView的侧面(就像它被横向拍摄)一样,右侧显示的唯一方式是如果我以横向模式拍摄照片。让摄像头始终返回右侧向上拍摄的照片?

任何人都知道一个简单的解决方法,无论照相机的方向如何,照片的乘坐方向都会显示出来吗?如果有人需要查看,我可以轻松提供我的代码。

谢谢!

回答

3

这是我在activity中使用onActivityResult()的代码。返回的意图是用于选取类型为image/*的图像。适合我!

Uri imageUri = intent.getData(); 
String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION}; 
Cursor cur = managedQuery(imageUri, orientationColumn, null, null, null); 
int orientation = -1; 
if (cur != null && cur.moveToFirst()) { 
    orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0])); 
} 
Matrix matrix = new Matrix(); 
matrix.postRotate(orientation); 
+0

聪明!我有一个解决方案来检查EXIF标签......这是一个很好的选择。 (虽然为什么BitmapFactory.decodeBitmap()不尊重JPEG方向肯定是真正的问题)。 – 2011-08-03 18:45:37

+0

谢谢你。我试图使用Exif标签,但在检查从意图返回的图像时,它始终为0。 – dbaugh 2011-08-03 21:15:29

相关问题