Ich habe eine Recycler-Ansicht mit Karten, die Bildansichten enthalten. Die Liste der Elemente besteht aus Rezepten. Daher versuche ich, das ImageView zur Laufzeit zu ändern und zu prüfen, ob es einen Zeichensatz gibt, der dem Namen des Rezepts entspricht (ich habe kein Bild für alle Rezepte im Zeichnungsordner). Wenn es nicht existiert, stelle ich ein generisches Bild ein. Dies verursacht Lags beim Scrollen der Recycler-Ansicht und manchmal stürzt es ab, wenn ich versuche, die Zurück-Taste zu drücken. Wie kann ich es glatter machen?Verzögerung beim Ändern der Bildansicht basierend auf dem Namen des Elements in der Recycler-Ansicht
Dies ist mein Code (RecyclerViewAdapter):
int test = ctx.getResources().getIdentifier(recipeName, "drawable", ctx.getPackageName());
if(test != 0){
imageView.setImageResource(test);
}
else{
switch(item.getType()){
case "Colazione":
imageView.setImageResource(R.drawable.colazione);
break;
case "Pranzo":
imageView.setImageResource(R.drawable.pranzo);
break;
case "Spuntino":
imageView.setImageResource(R.drawable.snack);
break;
case "Cena":
imageView.setImageResource(R.drawable.cena);
break;
case "Dessert":
imageView.setImageResource(R.drawable.dessert);
break;
case "Aperitivo":
imageView.setImageResource(R.drawable.brunch);
break;
}
, wenn es zum Absturz bringen es diese Ausnahme startet:
java.lang.OutOfMemoryError: Failed to allocate a 83574412 byte allocation with 16777216 free bytes and 42MB until OOM
bitte Ihre Crash-Protokolle hinzufügen. –
Wenn es ein Speicherproblem ist, könnten Sie vielleicht eine Bibliothek wie Fresco, Glide, Picasso usw. versuchen. – Vinnie
Ich habe versucht Glide ma es hat das Problem nicht gelöst –