Сбор изображений из галереи со следующим кодом:Галерея снимков, сделанных на андроидов Samsung всегда в ландшафте, даже если принимать в портретном
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, PICK_FILE_RESULT_CODE);
Получение результата с помощью следующего кода:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_FILE_RESULT_CODE) {
if (resultCode == RESULT_OK && data != null && data.getData() != null) {
// Get the Uri of the selected file
Uri uri = data.getData();
//Using Picasso to load uri to imageView
//Image is in landscape even if it was taken in portrait
}
}
}
код работает отлично подходит для телефонов HTC и Nexus, но для устройств Samsung (Galaxy 5 и Galaxy 5 mini) ориентация неверна, если фотография была сделана на портрете. При взгляде на ExifInterface ориентация не определена ..
File imageFile = new File(uri.getPath());
ExifInterface exif = new ExifInterface(
imageFile.getAbsolutePath());
int orientation = exif.getAttributeInt(
ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
//orientation is always 0 for samsung devices = ORIENTATION_UNDEFINED
Как я могу представить образы правильно альтернативные определить правильную ориентацию, так что я могу повернуть изображение?
отправить мне 2 изображений образца (1 в каждой ориентации), и я вам скажу, если я найти любую информацию, определяющую ориентация ([email protected]). – BitBank
Я отправил письмо, содержащее изображения сейчас, спасибо за то, что уделил вам время! @BitBank – user1354603
Изображения содержат информацию о ориентации EXIF. Первый - «90 градусов влево», а второй - «180 градусов». – BitBank