German Text und Picture mischen

SirHarry

Member
Licensed User
Longtime User
Hi Leute

Ich versuche mich gerade an einem Chatprogramm.

Um auch Smilies anzeigen zu können, müsste ich in der Anzeige Text und Picture mischen.
Hab aber grade keine Idee, welche View ich dazu benutzen könnte. Textelement oder Label kann keine Pictures einbinden.

Irgend jemand hier eine Idee?
 

SirHarry

Member
Licensed User
Longtime User
Moin
Hab mir grade das Beispiel hier:
angesehen. Sieht aus, wie das, was ich suchte.
Ich werd das mal einbinden und schaun, was ich draus machen kann.
Danke dir für den Tipp.
 

BlueVision

Active Member
Licensed User
Longtime User
Gern geschehen. Ich habe das bisher eigentlich eher selten benutzt, wenn dann nur um Text hervorzuheben mit einer anderen Farbe in irgendwelchen "Erklärungen" im Programm. Sollte aber genau das machen, was Du brauchst. Musst Dich eben reinfummeln.
 

SirHarry

Member
Licensed User
Longtime User
hmm..ja.. kann man offensichtlich während der Laufzeit nicht einbinden. Und das brauch ich ja, wenn ich die angekommenen Nachrichten darstellen möchte.

Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize(panelx As Panel)
mPanel = panelx
End Sub

Public Sub setBubble(Empfaenger As Boolean,gelesen As Int,leftx As Int,topx As Int,widthx As Int,Heightx As Int,text As String,id As Int) As Int
m_id = id
Dim BBLabel1 As BBLabel
Dim TextEngine As BCTextEngine
If BBLabel1.IsInitialized = False Then
BBLabel1.Initialize(Me,"Nachricht")
End If
If TextEngine.IsInitialized = False Then
TextEngine.Initialize(mPanel)
End If

BBLabel1.TextEngine = TextEngine
BBLabel1.mBase=mPanel
'Beispieltext
BBLabel1.Text = $"[FontAwesome=0xF17B size=30/] This is a BB[color=0xff006688]Label[/color] [TextSize=30]🙏🏻👍🏾[/TextSize]"$

ergibt während der Laufzeit folgenden Fehler, auf den ich keinen Einfluß habe:

Error occurred on line: 1014 (BCTextEngine)
java.lang.RuntimeException: Object should first be initialized (Typeface).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
at hs.Enigma.bctextengine._fonttokey(bctextengine.java:2949)
at hs.Enigma.bctextengine._getfontmetrics(bctextengine.java:662)
at hs.Enigma.bctextengine._handletextrun(bctextengine.java:3162)
at hs.Enigma.bctextengine._prepare(bctextengine.java:2840)
at hs.Enigma.bctextengine._drawtext(bctextengine.java:972)
at hs.Enigma.bblabel._redraw(bblabel.java:239)
at hs.Enigma.bblabel._parseanddraw(bblabel.java:204)
at hs.Enigma.bblabel._settext(bblabel.java:126)
 

SirHarry

Member
Licensed User
Longtime User
Lösung:
Da mich der Beispieltext in BBCode-Example sehr an HTML erinnerte, brachte mich das auf den Gedanken, per Code Webviews einzubinden und zu positionieren und diese mit HTML aus einer dafür angefertigten Decodierungssklasse zu füllen.
Sieht bis jetzt sehr gut aus.
 
Top