当通过意图捕获图像时,我遇到了一个问题。如何通过Intent捕获图像时获取方向类型?
我使用默认的意图代码来捕获图像。如下。
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PHOTO_CODE);
并在onActivityResult中接收它如下。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(TAKE_PHOTO_CODE==requestCode){
try {
Bundle extras = data.getExtras();
Bitmap mImageBitmap = (Bitmap) extras.get("data");
selectedImagePath = saveImageInfo(mImageBitmap, "image");
ExifInterface exif = new ExifInterface(selectedImagePath);
Toast.makeText(getBaseContext()," "+exif.getAttribute(ExifInterface.TAG_ORIENTATION), Toast.LENGTH_SHORT).show();
try {
showDialog(DIALOG_UPLOADING);
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "No image selected.. ", Toast.LENGTH_SHORT).show();
}
}
}
我想在这个onActivityResult方法所拍摄的图像的方向,我有搜索和了解它,并找到了ExifInterface,但它不为我工作,我测试LG的Optimus Android设备上,它总是返回0为了我。
问题是捕捉图像旋转后的问题。 任何解决方案?
你为什么不尝试比较'height'and其'width'?如果'h> = w'那么* portrait * else * landscape *? – Aprian
比较高度和宽度会产生问题......在nexus 1和nexus S上测试它,你会发现问题... –