Ich versuche, Bilder aus den Dateien des Telefons zu laden. Es geht gut, wenn die Datei ein kleines Bild ist:versuchen, Bild aus Dateien zu laden, einen schwarzen Kreis stattdessen
Ergebnis für 40kb Bild, 275x269
Aber wenn ich versuche, ein größeres Bild zu laden, dies geschieht:
Ergebnis für 2,63 MB Bild, 4160x2340
Mein Code - Holen Sie sich die Datei:
private void selectImage(){
Intent i = new Intent();
i.setType("image/*");
i.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(i, "Select File"), SELECT_FILE);
}
Set Bild als Image der Hintergrund:
public void onActivityResult(int resultCode, Intent data){
super.onActivityResult(resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if(data!=null) {
try {
photo = MediaStore.Images.Media
.getBitmap(getApplicationContext().getContentResolver(),
data.getData());
}catch(Exception e){
e.printStackTrace();
}
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, baos);
imageView.setImageBitmap(photo);
}
}
}
Dies ist, was die Android-Monitor zeigt mir:
07-20 17:32:57.949 3200-3200/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 265K, 6% free 5668K/5972K, paused 4ms, total 6ms
07-20 17:32:58.079 3200-3200/rafael.couto.newmoka I/dalvikvm-heap: Grow heap (frag case) to 42.701MB for 38937612-byte allocation
07-20 17:32:58.079 3200-3208/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 2K, 1% free 43691K/44000K, paused 5ms, total 5ms
07-20 17:32:59.599 3200-3200/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 2120K, 6% free 45599K/48036K, paused 4ms, total 4ms
07-20 17:33:00.889 3200-3200/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 2043K, 9% free 47650K/52132K, paused 4ms, total 4ms
07-20 17:33:00.899 3200-3200/rafael.couto.newmoka I/dalvikvm-heap: Grow heap (frag case) to 54.569MB for 8392804-byte allocation
07-20 17:33:00.909 3200-3208/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 0K, 8% free 55846K/60332K, paused 4ms, total 4ms
07-20 17:33:03.209 3200-3200/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 4094K, 15% free 51752K/60332K, paused 3ms, total 3ms
07-20 17:33:03.239 3200-3200/rafael.couto.newmoka I/dalvikvm-heap: Grow heap (frag case) to 66.586MB for 16793700-byte allocation
07-20 17:33:03.249 3200-3208/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 0K, 12% free 68152K/76736K, paused 8ms, total 8ms
07-20 17:33:03.589 3200-3200/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 8200K, 22% free 59952K/76736K, paused 2ms, total 2ms
07-20 17:33:03.589 3200-3200/rafael.couto.newmoka I/dalvikvm-heap: Grow heap (frag case) to 67.363MB for 9210496-byte allocation
07-20 17:33:03.599 3200-3208/rafael.couto.newmoka D/dalvikvm: GC_FOR_ALLOC freed 156K, 11% free 68790K/76736K, paused 7ms, total 7ms
Was ist los, und was soll ich tun?
was ist los, Ihr Bild ist zu groß und es wird nicht laden aufgrund von Speicherproblemen und eher. Passen Sie die Größe des Bilds an die Größe Ihrer Ansicht an. – petey
Was ist der beste Weg dafür? –
wurde die Größe eines Bildes geändert und wurde ein paar Mal nach dem Android-Tag gefragt. – petey