Fragen zu Bildern in Datenbank/Android App Entwicklung

nik_

Admiral
Registriert
Sep. 2011
Beiträge
7.334
Hi,

ich entwickel gerade eine App um Trainingspläne zu verwalten. Das Datenbankmodel steht soweit, aber ich habe eine Frage.
In der Datenbank werden die Übungen zu einem Plan abgespeichert (Gibt eine Tabelle Übung, sowie aktueller Plan. Zwischen beiden besteht eine m:n Beziehung).

Die Frage die sich mir jetzt stellt. Ich habe auch Bilder zu den Übungen die angezeigt werden müssen. Diese müssen irgendwo gespeichert werden. Da ich für Android entwickel, müssten ja alle Bilder in der App an sich gespeichert werden und dann von dort aus passend eingefügt werden. Hier müsste ich die Bilder ja dann entsprechend in einer Tabelle so anordnen, dass wenn ich z.B. Übung x (Bsp: Bankdrücken auswähle), dass Bild x (Bankdrücken) angezeigt wird.

Habe ich da einen Denkfehler oder passt das so? Dann müsste ich wenn jemand seinen Plan abruft, die Übungen vom DB-Server abfragen (hier wird evtl. noch der aktuelle Plan auf dem Smartphone für X Tage gespeichert, falls der DB-Server nicht erreichbar ist) und die Übungen müssten lokal passend vom Smartphone geladen werden.
 
Die Bilder musst du nicht in der App speichern. Du kannst sie auch mit den Übungsdaten zusammen vom Server holen. Und wenn du zu jeder Übung nur ein Bild hast, dann lohnt es sich eigentlich nicht eine extra Tabelle für die Bilder anzulegen. Da kannst du den Bildverweis auch gleich mit in der Übungstabelle ablegen.
So kannst du dann auch neue Übungen hinzufügen, ohne gleich eine neue Version der App ausliefern zu müssen.
 
Also mit Bilder meine ich quasi meine R.drawables (die Bilder sollen in einer Imageview angezeitg werden). Die liegen aktuell als Beispiel im *.png Format vor. Android entscheidet ja je nach Auflösung, welche Größe genommen wird (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi). Kann ich die dann trotzdem aus der DB laden?
48x48 (1.0x baseline) for medium-density
72x72 (1.5x) for high-density
96x96 (2.0x) for extra-high-density
180x180 (3.0x) for extra-extra-high-density
192x192 (4.0x) for extra-extra-extra-high-density (launcher icon only; see note above)
Quelle: http://developer.android.com/guide/practices/screens_support.html#qualifiers
 
Das geht auch. Musst dann aber den Namen vorher zur Resource-ID auflösen.
Sowas in der Art:
Code:
String imageName = "mydrawable"; // <- hier dann den Namen aus der DB holen
imageview.setImageResource(getResources().getIdentifier(imageName , "drawable", this.getPackageName()));
Ist nicht getestet, musst du mal rumprobieren.
 
Keine Ahnung wie man das mit Resourcen bei Android macht. Aber prinzipiell würde ich die Bilder definitiv lokal zwischenspeichern. Auf irgendein automatisches Caching etc. würde ich mich nicht verlassen. Gerade in deinem Fall, wo das gleiche Training evtl. oft geöffnet wird und alles offline funktionieren soll.
 
Zurück
Oben