I´m learning android/java by myself @the moment and i have a problem with a part of my app i´m learning on.
I made the code with help of the www and my problem is that if i open an image from the gallery it´s send to the edit activity but in the activity pictures what are made in portrait mode are displayed always wrong (90° to the right side)....
The codes are
Matrix
private Bitmap rotateBitmapToOrientation(Bitmap b, int orientation){
Matrix matrix = new Matrix();
matrix.postRotate(orientation);
Canvas offscreenCanvas = new Canvas();
offscreenCanvas.drawBitmap(b, matrix, null);
return b;
}
and the other one
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case PICK_IMAGE_FROM_GALLERY:
{
if (resultCode == RESULT_OK)
{
Log.d(TAG, "Got Picture!");
Log.d(TAG,"File type - " + data.getType());
Uri photoUri = data.getData();
if (photoUri != null)
{
try {
String[] filePathColumn = {MediaStore.Images.Media.DATA};
String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION};
int orientation = -1;
Cursor cursor = getContentResolver().query(photoUri, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
cursor = getContentResolver().query(photoUri, orientationColumn, null, null, null);
if(cursor != null && cursor.moveToFirst()){
orientation = cursor.getInt(cursor.getColumnIndex(orientationColumn[0]));
}
cursor.close();
HashMap<String, Integer> pRes = this.getImageResolutionSetting();
Bitmap shrunkenBitmap = FileUtilsHelper.shrinkBitmap(filePath, pRes.get("width"), pRes.get("height"));
shrunkenBitmap = rotateBitmapToOrientation(shrunkenBitmap, orientation);
String res = FileUtilsHelper.saveBitmapAsJpeg(shrunkenBitmap, this);
Log.d(TAG,"File Path: " + res);
shrunkenBitmap.recycle();
Intent editImage = new Intent(this, EditImage.class);
editImage.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
editImage.putExtra("stuff.path", res);
startActivity(editImage);
}catch(Exception e){
Toast.makeText(this, R.string.cant_save_image,Toast.LENGTH_SHORT).show();
}
}
}
}
break;
}
}}
I don´t know what i´m doing wrong...
I could really need a teacher on that :)
Thx for your help dudes!!