2012-04-10 1 views
0

Ich würde gerne wissen, was ist der beste Weg, um mehrere, kleine (alle von ihnen die gleiche Größe) Bilder in einem TextView zu platzieren? Von dem, was ich gefunden habe, wäre der beste Weg, HTML zu verwenden, aber wie? Alle meine Bilder sind offline, also kann ich sie zum Beispiel im Rohordner kopieren, wenn das der richtige Weg ist. Kann mir jemand in die richtige Richtung zeigen oder einen ähnlichen Thread zeigen, den ich nicht gefunden habe? Oder gibt es einen besseren Ansatz, wie TextView nicht zu verwenden, sondern etwas anderes, das in den Layoutdateien gelöst und dynamisch mit Bildern gefüllt werden kann?Mehrere Bilder in einem TextView?

Btw, die ganze Sache, die ich tun möchte, ist:

  • Ich habe eine Listview, gefüllt mit Gegenständen
  • jedes Element verschiedene Attribute hat, die ich zur Zeit in Klartext drucken (I theese ersetzen möchten Bilder mit
  • atm, verwende ich einen separaten Textview theese
  • die Anzahl der Attribute sind statistische Attribute angezeigt werden, jedoch mindestens 1 und typischerweise 3-4 (1 Bild so dest auf, typischerweise 3-4)

prost

Antwort

1

Warum nicht einfach ein Layout erstellen, die für jede Zeile Ihrer ListView und füllen Sie die verschiedenen Elemente dieses Layout auf der Grundlage der Daten für die Zeile verwendet werden kann?

Wenn beispielsweise jedes Element maximal 4 Attribute hat, fügen Sie vier ImageViews auf das Layout und setzen ihre Drawables und Sichtbarkeit in getView basierend auf der Position in geben

+0

das klingt gut genug, ich werde es untersuchen! – hundeva

+0

was ich tun werde, ist wie folgt: Definieren Sie ein LinearLayout mit horizontaler Ausrichtung und zentrierter Schwerkraft in der XML. Erkennen Sie dies am Code und fügen Sie dem definierten LinearLayout dynamisch ein ImageView hinzu, nicht genau das, was Sie gesagt haben, aber nahe genug :) – hundeva

+0

Sie müssen sorgfältig die Views erstellen, die von Ihrem Adapter aufgrund des View-Recyclings dynamisch zurückgegeben werden.In der Tat sparen Sie wahrscheinlich CPU, indem Sie eine Standardansicht haben und 'setVisibility' aufrufen, im Gegensatz zum Hinzufügen und Entfernen von Ansichten aus dem Layout der Zeile jedes Mal, wenn 'getView' aufgerufen wird. –

1

Eines ist sicher:. Sie Ich möchte deine Bilder nicht in deine Textansicht einfügen.

Eine Textansicht kann einen Hintergrund enthalten, sollte aber nicht zum Enthalten von Bildern verwendet werden.

Sie möchten einfach ein Elementlayout entwerfen, das von Ihrem Adapter verwendet wird, um die Listenansicht zu füllen.

Dieses Elementlayout enthält eine textView, die nur Ihren Text und Ihre Bilder enthält. Dann können Sie in Ihrem listAdapter einfach die gewünschten Bilder anzeigen oder ausblenden.

Versuchen Sie, das Layout auf einem RelativeLayout zu stützen, dass Sie ein einfacheres Design und sogar einige Elemente überlappen lassen können (die Bilder der Textview beispielsweise überlappen können)

3

Klingt wie Sie Smileys in einem Chat zu machen sind/Nachricht Anwendung, habe ich recht? ;)

Wie auch immer, der Weg zu gehen ist eine ImageSpan zu verwenden. Sie können Matcher verwenden, um alle Textkombinationen zu finden, die Sie ersetzen möchten, und SpannableStringBuilder verwenden, um ImageSpan s zu den vom Matcher zurückgegebenen Positionen hinzuzufügen. Dadurch werden diese Zeichen durch das Bild ImageSpan ersetzt.

+0

nah, Ich verbessere meine Zugfahrplan-App, wo jeder Zug andere Attribute hat, wie es Fahrradtransport hat oder nicht, nur 2. Klasse oder 1. Klasse auch, etcetc :) Die Antwort, die du erwähntest klingt gut genug, ich werde dieses versuchen auch aus :) – hundeva