Ich habe eine Menge Dokumentation gefunden, wie große Bitmaps geladen werden und outofmemory Ausnahme zu vermeiden. aber das Problem ist, dass ich das Bild von meinem MediaStore.Images.media zu nehmen, so dass die klassischen decodeFile(path,options)
in der Google-Dokumentation angegeben mich nichtoutofmemory Ausnahme für große Bitmap
funktioniert Wie Sie sehen unter mir die Linie // Bitmap photo= Mediastore.Images
decommented, dh derjenige, der den nicht ausreichenden Speicher auslöst. auf der anderen Seite die Zeile Bitmap bm=BitmapFactory.decodeFile(selectedImageToUri,options)
gibt null
zurück, obwohl der Compiler beide den Pfad in selectedImageToUri
(die den Inhaltsanbieter angibt, wo die Bilder sind) als die Optionen Wert, den ich auf 8 festgelegt, da ich alle Subskalen die Bilder
Meine Frage ist, wie kann ich in BM die Bitmap einfügen, die sich auf das Bild bezieht, das vom Benutzer in der Galerie ausgewählt wird. in der Zeile BitMap photo
gibt nicht Null und funktioniert wirklich gut, aber ich zerlegt, weil, nachdem ich ein paar Bilder ändern gibt mir outofmemory Ausnahme.
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable final Bundle savedInstanceState) {
if (flagVariable) {
if (selectedImageToUri != null) {
// BitMap photo = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), Uri.parse(selectedImageToUri));
final BitmapFactory.Options options= new BitmapFactory.Options();
options.inSampleSize=8;
Bitmap bm = BitmapFactory.decodeFile(selectedImageToUri, options);
pic = new BitmapDrawable(bm);
getActivity().getWindow().setBackgroundDrawable(pic);
} else {
getDefaultImageBackground(inflater, container);
}
hiddenList = inflater.inflate(R.layout.fragment_as_list_layout_temp, container, false);
} else {
getDefaultImageBackground(inflater, container);
}
listView = (ListView) hiddenList.findViewById(R.id.list_hidden);
danke Weston, für die Bearbeitung und für deine Antwort, also gebe ich dir einen Reputationspunkt, aber ich akzeptiere als Antwort Attaulah, das war mir zuerst und weiter auch ein netter schneller Gewinn, der dem Manifest einen großen Heap hinzufügt, der auch eine interessante Alternative ist (obwohl natürlich nicht optim al) – trocchietto
Das liegt an dir, aber für den Rekord war meine Antwort zuerst. Die Reihenfolge der Antworten ist nicht chronologisch. – weston
Es tut mir leid von ganzem Herzen Ich kannte Weston nicht. Es wäre eine Utopie, deine Freundlichkeit zu tauschen und einen Posten zu suchen, wo du um Hilfe bittest, denn mein Wissensstand ist im Vergleich zu dir definitiv ein fernes Licht. Ich bin sogar noch kein Android-Entwickler, der seinen Lebensunterhalt verdient. Mein aufrichtiges Kompliment für den goldenen Kopf deines Avatars ist einfach unglaublich imo. Hoffe wirklich, in Zukunft für dich wertvoll zu sein. Wieder tut mir leid Weston – trocchietto