Hi sia,
ich denke in etwa so solte es gehen mit dem Runden Bild must du noch lösen.
Die Auswertung ob das Bild gedreht werden muss, ist noch nicht im Code enthalten.
public void onClickProfilePhoto(View view){
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, SELECTED_PICTURE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case SELECTED_PICTURE:
if(resultCode == RESULT_OK){
Uri uri = data.getData();
String[]projection ={MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(projection[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
imageBtnProfile = (ImageButton)findViewById(R.id.imageBtnProfile);
Bitmap imagePict = BitmapFactory.decodeFile(filePath);
// Skalieren
float arate = imagePict.getWidth() / imagePict.getHeight(); // Verhältnis Breite zu Höhe
int outWidth = dpToPx(200); // Breite auf deine Vorgabe 200dp
// wenn du das Seiten Verhältnis des Bildes beibehalten willst
int outHeight = (int) outWidth / arate;
// ohne Seten Verhältnis
//int outHeight = dpToPx(200);
Bitmap imageResized = Bitmap.createScaledBitmap(imagePict, outWidth, outHeight, false);
// Bild Dehen winkel = 0, 90, 180, 270 grad
Matrix matrix = new Matrix();
matrix.postRotate(winkel);
Bitmap imageRotate = Bitmap.createBitmap(imageResized, 0, 0, imageResized.getWidth(), imageResized.getHeight(), matrix, true);
Drawable drawable = new BitmapDrawable(imageRotate);
imageBtnProfile.setImageDrawable(drawable);
}
break;
}
}
public int dpToPx(int dp) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
}
Alles anzeigen
Hier noch ein Interresanter Link
https://stackoverflow.com/ques…-are-rotated-in-imageview