dynamischen Text durch Bilder ersetzen

  • Antworten:12
  • Bentwortet
Philipp S.
  • Forum-Beiträge: 23

19.02.2012, 10:00:25 via Website

Hallo Androids!

Zu eurer Info:
Ich bin in der Entwicklung einer Fußball-App für die deutsche Bundesliga und habe ein TableLayout in dem ich einen Spieltag darstelle, also 9 Spiele. "Heim", "Gast" und 2 Ergebnis-Spalten sind darin enthalten. Die Daten kommen allesamt aus meiner MySQL-DB über ein PHP-Webscript.

Nun würde ich gerne "Heim" und "Gast" durch Vereinslogos ersetzen anstatt normale Texte darzustellen. Also sowas wie eine Methode, in der ich sage:

"If Verein(FC Bayern) {@drawable/fc_bayern}"
usw.

Wie könnte ich das realisieren?

Danke im Voraus!

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

19.02.2012, 11:31:23 via Website

naja du speicherst die teilnehmenden vereine ja sicher in einer datenstruktur - füge der struktur einfach das bild dazu - woher du das bild dann nimmst, weiß ich nicht. das liegt bei dir

swordiApps Blog - Website

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

19.02.2012, 11:37:11 via Website

Mal abgesehen davon, dass ich vorher klären würde, ob ich die Logos in der App überhaupt verwenden darf, und wenn ja unter welchen Bedingungen -- wo genau hängst du denn?

Du hast ein festes Layout, in dem du die Platzhalter gegen konkrete Grafiken beim Befüllen austauschen willst?
Soweit geht das ja ganz analog zur Text-Variante, die du wohl bereits umgesetzt hast.

Antworten
Philipp S.
  • Forum-Beiträge: 23

19.02.2012, 15:16:45 via Website

naja, mein genaues problem ist, dass ich nicht weiß, wie ich in meiner Activity angebe, was für ein logo er nehmen soll.
im layout.xml sage ich, das logo liegt unter drawable/etc., aber wie gebe ich das in der activity genau an?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

19.02.2012, 16:05:01 via Website

naja du wirst wohl eine table rows dynamisch erzeugen müssen oder legst dir fix 18 reihen in dein layout ?

angenommen letzeres dann hat dein layout wohl sowas wie
<ImageView id="@+id/ivPlatz1"..

dann kannst ja einfach das richtige bild für diese imageview angeben.


ich kapier nicht ganz, was du da nicht kapierst :D

zeig mal was du hast, wo du genau hängst. glaub eher das sind grundlagen probleme, weniger android - mehr programmierung

swordiApps Blog - Website

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

19.02.2012, 16:56:44 via Website

das logo liegt unter drawable/etc., aber wie gebe ich das in der activity genau an?

Dann meinst du diesen Teil?
logoImg = BitmapFactory.decodeResource(context.getResources(), R.drawable.mein_logo);
...
b.setImageBitmap(logoImg);

Antworten
Philipp S.
  • Forum-Beiträge: 23

19.02.2012, 17:37:17 via Website

okay leute, hier ein auszug aus meinem code:

1public void fillList() {
2
3 table = (TableLayout) findViewById(R.id.TableLayout);
4 TableRow row1 = new TableRow(this);
5 tipp1_heimText = new TextView(this);
6 tipp1_heimText.setText(tipp1_heimString);
7 row1.addView(tipp1_heimText);
8
9}

nun also möchte ich die TextView mit einem Bild ersetzen, je nach dem was für einen Verein der "tipp1_heimString" mir gibt.
hoffe jetzt ist es verständlicher, aber das mit der BitmapFactory werde ich mir jetzt mal genauer anschauen.

verzeiht mir, ich bin (noch) kein Java-Profi...

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

19.02.2012, 18:14:03 via Website

Ich verstehs immer noch nicht...

Jetzt ersetzt du in Zeile 5 "new ImageView" und in Zeile 6 "setImageBitmap", oder was ist jetzt unklar?

Kann es sein da du den Code irgendwo her kopiert hast und eigentlich nicht weisst, was der tut, oder wie kann es zu dieser Fragestellung kommen?

Antworten
Philipp S.
  • Forum-Beiträge: 23

19.02.2012, 18:24:14 via Website

OK, ich glaube ich bin jetzt auf den richtigen Weg gekommen...

Ich werde die TextView nun durch eine ImageView ersetzen und die ImageResource aufgrund des Strings aus den SQL-Daten "bestimmen":
wenn der String "FC Bayern" lautet brauche ich auch das Bild "R.drawable.fc_bayern"

hab mich vorher wohl nicht deutlich ausgedrückt - aber nein, der code ist nicht irgendwo herkopiert, ich habe ihn nur in Auszügen angegeben, deshalb wird es für dich verwirrend gewesen sein...

Danke für deine Hilfe!

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

19.02.2012, 19:04:52 via Website

Nicht der Code war verwirrend für mich, sondern wo das Problem ist, wenn man den Code schon hat (und versteht was er macht) ;)

Aber wenn du jetzt weiterkommst, ist ja alles gut :)

BTW: den Punkt bzgl. der Rechtmäßigkeit der Verwendung der Logos hast du gesehen?

Antworten
Philipp S.
  • Forum-Beiträge: 23

19.02.2012, 19:07:09 via Website

ja, danke, das hab ich gesehen.
da ich die app vorläufig (noch) nicht veröffentlichen werde, stellt sich die Frage (noch) nicht...

Antworten
Philipp S.
  • Forum-Beiträge: 23

19.02.2012, 21:10:27 via App

ich werde meine lösung noch posten und den thread dann auf beantwortet setzen...

Antworten
Philipp S.
  • Forum-Beiträge: 23

21.02.2012, 18:23:46 via Website

Hallo zusammen,

ich habe es nun wie folgt hinbekommen:

Zuerst habe ich die Table in meiner SQL-DB um eine Spalte erweitert, die mir den String des Bildes angibt (z.B.: "drawable/bild1").
Diesen String frage ich zusätzlich ab und verarbeite ihn dann wie folgt:

1int tipp1_heimResource = getResources().getIdentifier(tipp1_heimString, null, getPackageName());
2tipp1_heimImage.setImageResource(tipp1_heimResource);

So werden die Bilder korrekt angezeigt...

Danke für eure Hilfe!

Antworten