iOS Question Chat Example

Lucas Eduardo

Active Member
Licensed User
Hello everyone,

I use this code in B4A and works correctly.

But when i use in B4I the text message it's not showing, just the bubble

my sub BuildMessage it's this one
Private Sub BuildMessage (Text As String, Right As Boolean, hora As String) As String
    Dim msg, time As String
    If Right Then time = $"[color=#F1F1F1]${hora}[/color]"$ Else time = $"[color=#808080]${hora}[/color]"$
    msg = $"[Color=#000000][font=fontRegular size=14]${Text}[/font][/Color] [font=fontRegular size=10]${CRLF & time}[/font]"$
    Return msg
End Sub
i can't figure it out why it's not showing the text. What could be?

part of my code to create the message it's this one
    Dim p As B4XView = xui.CreatePanel("")
    p.Color = xui.Color_Transparent
'    Dim User As String
'    If Right Then User = "User 2" Else User = "User 1"
    If hora.Contains("-") Then
        DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
        Dim time As Long = DateTime.DateParse(hora)
        DateTime.DateFormat = "HH:mm:ss"
        Dim timeParsed As String = DateTime.Date(time)
        Dim timeParsed As String = hora
    End If
'    BBCodeView1.ExternalRuns = BuildMessage(Text, Right, timeParsed)
'    BBCodeView1.ParseAndDraw
    Log("Text: "&Text)
    Log("Right: "&Right)
    Log("timeParsed: "&timeParsed)
    BBCodeView1.Text = BuildMessage(Text, Right, timeParsed)

    Dim ivText As B4XView = CreateImageView
    'get the bitmap from BBCodeView1 foreground layer.
    Dim bmpText As B4XBitmap = GetBitmap(BBCodeView1.ForegroundImageView)
    'the image might be scaled by Engine.mScale. The "correct" dimensions are:
    Dim TextWidth As Int = bmpText.Width / Engine.mScale
    Dim TextHeight As Int = bmpText.Height / Engine.mScale
    'bc is not really used here. Only the utility method.
    'Now get the whole image
'    BBCodeView1.mBase.Color = Colors.Red
    Dim bmpAll As B4XBitmap = BBCodeView1.mBase.Snapshot
    bmpText = bmpAll.Crop(0, 0, TextWidth, TextHeight)
'    bmpText.TextColor = Colors.Black
    bc.SetBitmapToImageView(bmpText, ivText)
    Dim ivBG As B4XView = CreateImageView
    'Draw the bubble.
    Dim bmpBG As B4XBitmap = DrawBubble(TextWidth, TextHeight, Right)
    bc.SetBitmapToImageView(bmpBG, ivBG)
    p.SetLayoutAnimated(0, 0, 0, - 2dip, TextHeight + 3 * Gap)
Thank you.

Lucas Eduardo

Active Member
Licensed User
Yes, it work's, but the example uses external runs and did not show images in the messages. So i use the bbcodeview.text to show images

Lucas Eduardo

Active Member
Licensed User
The problem that it was not showing the text it was fixed, but when i tested with putting images in the message did not work.