Ich verwende den folgenden Code, um die Ausrichtung des ausgewählten Bildes zu erhalten, so dass, wenn es vertikal genommen wurde, wenn es aus der Galerie ausgewählt wurde, würde es nicht horizontal angezeigt werden.Bild gedreht, wenn aus der Galerie ausgewählt
Der Fehler tritt in der Datei imageFile = neue Datei (selectedImage.toString()); im Parameter selectedImage.toString()) seit dem ich das ursprüngliche int rotiere = 90 änderte und ein vertikales Bild wählte, war das Ergebnis gut.
Übergeben ich den Parameter an die Datei korrekt?
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
BitmapFactory.Options options;
if (resultCode == RESULT_OK && requestCode == PICTURE_SELECTED) {
try {
options = new BitmapFactory.Options();
options.inSampleSize = 4;
Uri selectedImage = data.getData();
InputStream stream = getContentResolver().openInputStream(selectedImage);
Bitmap yourSelectedImage = BitmapFactory.decodeStream(stream, null, options);
stream.close();
//orientation
try {
int rotate = 0;
try {
File imageFile = new File(selectedImage.toString());
ExifInterface exif = new ExifInterface(
imageFile.getAbsolutePath());
int orientation = exif.getAttributeInt(
ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_270:
rotate = 270;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotate = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_90:
rotate = 90;
break;
}
} catch (Exception e) {
e.printStackTrace();
}
Matrix matrix = new Matrix();
matrix.postRotate(rotate);
yourSelectedImage = Bitmap.createBitmap(yourSelectedImage , 0, 0, yourSelectedImage.getWidth(), yourSelectedImage.getHeight(), matrix, true); }
catch (Exception e) {}
//end of orientation
imgButton.setScaleType(ImageView.ScaleType.FIT_CENTER);
imgButton.setImageBitmap(yourSelectedImage);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Could not open file.", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(getApplicationContext(), "Image was not selected", Toast.LENGTH_LONG).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
Fügen Sie diese Zeile in Ihrem Manifest in Ihrer Tätigkeit, bei der die Bildgalerie wie diese –
Hat dieser Code ein wenig geholfen? –
Nein, Fehler: android: configChanges und screenOrientation sind dort nicht erlaubt – cgeekmt