Bild aus Galerie laden und schneiden

D

DrLiightninG

Neues Mitglied
1
Hallo zusammen,
ich versuche gerade ein Bild aus der Galerie zu laden und dieses dann anzuzeigen. Dabei ist bei mir folgender Fehler aufgetreten: Es werden nur Bilder in der ImageView angezeigt, die hochkant sind. Bei waagerechten Bildern bekomme ich einen Fehler bei AndroidStudio (W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (4128x2322, max=4096x4096)). Dabei ist mein ImageView waagerecht. Es erstreckt sich über die komplette Breite des Displays (von links nach rechts) und hat eine Höhe von 200dp.
Wie kann ich nun den Fehler beheben?

Zudem hätte ich noch folgende Frage:
Es ist in vielen Anwendungen so, dass man das Bild nach dem Auswählen noch skarlieren kann. So Beispielsweise bei der Auswahl des WhatsApp Profilbildes. Wie funktioniert das? Ich würde die ausgewählten Bilder gerne so schneiden, dass sie perfekt in mein ImageView passen. (komplette Breite, 200dp Höhe (oder werden andere Maße empfohlen?))

So sieht mein Code derzeit aus:
Code:
partyPicEB.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {

                            Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                            startActivityForResult(galleryIntent, 110);
                        }
                    });

Code:
@Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {

            if(resultCode == Activity.RESULT_OK) {
                //...
                if(requestCode == 110 && data != null) {
                    Uri selectedImage = data.getData();
                    partyProfilePic.setImageURI(selectedImage);
                }
            }

            super.onActivityResult(requestCode, resultCode, data);
        }

Gruß
Jan

PS:
Habe es jetzt folgendermaßen ans Laufen gebracht:
Code:
Bitmap d = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), selectedImage);
                        int nh = (int) ( d.getHeight() * (512.0 / d.getWidth()) );
                        Bitmap scaled = Bitmap.createScaledBitmap(d, 512, nh, true);
                        partyProfilePic.setImageBitmap(scaled);
 
Zuletzt bearbeitet:

Ähnliche Themen

B
Antworten
6
Aufrufe
1.016
jogimuc
J
softwaretk
Antworten
3
Aufrufe
1.189
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
954
Robby1950
R
Zurück
Oben Unten