Hallo liebe Leute,
ich habe eine App geschrieben bei der man am Startbildschirm eine Auswahl von Kategorien präsentiert bekommt in Form von Buttons. Diese erzeuge ich dynamisch.
Das hat für mich den Vorteil, dass wenn ich eine weitere Kategorie hinzufügen möchte, nur die Schleife erhöhen muss.
Inzwischen habe ich allerdings soviele Kategorien zur Auswahl, dass das Menuerzeugen je nach Handy einige Sekunden dauert. Es ist also eine deutliche Verzögerung zu bemerken. Gerade auf ältereren Geräten ( z.B. Samsung Galaxy S2) ist es nicht wirklich userfreundlich.
Nun meine Frage: wenn ich das XML statisch hinterlege, ist dieses Problem dann behoben? Für mich würde das zwar viel mehr Arbeit bedeuten, aber im Endeffekt soll die App ja flüssig laufen.
Oder kann ich das Erzeugen des Menus verbessern? Gibt es unterschiedlich gute Methoden?
Könnte auch die Bildergröße relevant sein? Ich halte die Bildgröße so gering wie möglich, allerdings muss eine gewissen Qualität ja auch vorhanden sein.
Hatte jmd. von euch schonmal ein ähnliches Problem?
Die Buttons erzeuge ich so:
Freundliche Gruß
ich habe eine App geschrieben bei der man am Startbildschirm eine Auswahl von Kategorien präsentiert bekommt in Form von Buttons. Diese erzeuge ich dynamisch.
Das hat für mich den Vorteil, dass wenn ich eine weitere Kategorie hinzufügen möchte, nur die Schleife erhöhen muss.
Inzwischen habe ich allerdings soviele Kategorien zur Auswahl, dass das Menuerzeugen je nach Handy einige Sekunden dauert. Es ist also eine deutliche Verzögerung zu bemerken. Gerade auf ältereren Geräten ( z.B. Samsung Galaxy S2) ist es nicht wirklich userfreundlich.
Nun meine Frage: wenn ich das XML statisch hinterlege, ist dieses Problem dann behoben? Für mich würde das zwar viel mehr Arbeit bedeuten, aber im Endeffekt soll die App ja flüssig laufen.
Oder kann ich das Erzeugen des Menus verbessern? Gibt es unterschiedlich gute Methoden?
Könnte auch die Bildergröße relevant sein? Ich halte die Bildgröße so gering wie möglich, allerdings muss eine gewissen Qualität ja auch vorhanden sein.
Hatte jmd. von euch schonmal ein ähnliches Problem?
Die Buttons erzeuge ich so:
Java:
for (int row = 0; row < numRows; row++) {
TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(new TableLayout.LayoutParams(
TableLayout.LayoutParams.MATCH_PARENT,
TableLayout.LayoutParams.WRAP_CONTENT, 0.5f));
table.addView(tableRow);
for (int col = 0; col < numCols; col++) {
if (countButton <= datasource.getNumberOfDifferentKategories()) {
final Button btn = new Button(this);
btn.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT, 0.5f));
btn.getLayoutParams().width = width;
btn.getLayoutParams().height = height;
btn.setId(countButton);
btn.setTextColor(Color.parseColor("#ffffff"));
btn.setTextSize(17);
// Weist Kategorien ihre Bilder zu
if (menubuttonChange == 1) {
btn.setBackgroundResource(R.drawable.bild1);
}//... hier werden natürlich 1-39 Bilder abgefragt, je nach dem welches hinterlegt werden soll
}else if (menubuttonChange == 39) {
btn.setBackgroundResource(R.drawable.bild39);
} else {
btn.setBackgroundResource(R.drawable.defaultbild);
}
btn.setEnabled(true);
// }
btn.setText("\n \n \n \n" + categoryName + "\n");
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//klickbar der Button
}
});
}
}
Freundliche Gruß
Zuletzt bearbeitet von einem Moderator: