Tabelle mit Bildern und Button

J

Julian2805

Neues Mitglied
0
Hallo zusammen,

ich habe ein Problem mit meiner ersten App. Ich habe eine Tabelle, in deren Zeilen ich jeweils eine Spalte mit einem Bild und eine Spalte mit einem Button angelegt habe. Das klappt bis zur 21. Zeile sehr gut. Füge ich eine 22. Zeile ein wird die App beim ausführen auf dem Smartphone abgebrochen.
Woran kann das liegen?

Logcat sagt: Throwing OutOfMemoryError "Failed to allocate a 8640012 byte allocation with 2545136 free bytes and 2MB until OOM"

Was kann man da machen? Danke für eure Hilfe
 
Vielleicht nochmal ein paar Codezeilen als Beispiel:

Code:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"android:layout_height="fill_parent" android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"android:background="@android:color/white"> 

<TableLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_centerVertical="true"android:layout_centerHorizontal="true">

<TableRowandroid:layout_width="match_parent"android:layout_height="match_parent">

<ImageViewandroid:layout_width="200dp"android:layout_height="110dp"android:id="@+id/imageView1"android:layout_column="0"android:src="@drawable/wit1_1" />

<Buttonandroid:layout_width="110dp"android:layout_height="wrap_content"android:text="Info"android:id="@+id/btn_wittmann"android:layout_column="1"android:layout_gravity="center"android:textAlignment="center" /> </TableRow>

</TableLayout>

</ScrollView>
 
Hi,

deine Bilder in der Tabelle sind zu groß, also in der Auflösung und ggf. nicht vorhandener Komprimierung.
Benutzt du denn irgend eine Art von ViewHolder?
Bei unseren produktiven Apps, habe wir gemerkt, dass ein ViewHolder leider bei Android unbedingt benutzt werden sollte.
 
Hallo,

Kannst du mir das mit dem ViewHolder genauer erklären? Hab schon ein bisschen gegooglet, hat mich aber nicht weiter gebracht. Vielleicht hast du ja ein Beispiel oder ein passendes Tutorial für mich.

Entschuldige, dass ich so doof/viel Frage. Bin noch anfänger.

Aber danke schonmal für deine Hilfe bis hierhin.
 
Hi,

bei dem ViewHolder Pattern werden Objekte in einer Liste gespart, weil die einzelnen Zeilen wiederverwendet werden können.
D.h.: Wenn du 20 Elemente in deiner Liste hast und beim starten der Activity nur 10 angezeigt werden, dann sind auch nur die 10 im Speicher.
Wenn du jetzt runterscrollst, dann werden beispielsweise die ersten 5 für die nächsten 5 wiederverwendet.
D.h.: Du hast wirklich nur ca. 10 Elemente, obwohl in der Liste beim Scrollen es immer so aussieht, als ob du alle 20 im Speicher hättest.

Gefunden hatte ich es damals bei Vogella: Using lists in Android (ListView) - Tutorial
Aber bei Google gibt es auch sowas: Making ListView Scrolling Smooth | Android Developers

Dein Problem kann aber auch eine andere Ursache haben. Wie groß sind die Bilder, die du in der Liste anzeigen lassen willst?
 
Im Schnitt sind es 56 KByte. Ich probiere es später nochmal ein wenig. Danke schonmal für deine Hilfe
 

Ähnliche Themen

R
Antworten
6
Aufrufe
1.016
swa00
swa00
MES
Antworten
10
Aufrufe
821
MES
MES
A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
Zurück
Oben Unten