Tabelle mit Bildern und Button

  • 5 Antworten
  • Neuester Beitrag
Diskutiere Tabelle mit Bildern und Button im Android App Entwicklung im Bereich Betriebssysteme & Apps.
J

Julian2805

Neues Mitglied
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
 
J

Julian2805

Neues Mitglied
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>
 
Kardroid

Kardroid

Stammgast
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.
 
J

Julian2805

Neues Mitglied
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.
 
Kardroid

Kardroid

Stammgast
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?
 
J

Julian2805

Neues Mitglied
Im Schnitt sind es 56 KByte. Ich probiere es später nochmal ein wenig. Danke schonmal für deine Hilfe
 
Ähnliche Themen - Tabelle mit Bildern und Button Antworten Datum
4
6