Italian [SOLVED] Modificare il font in un Animated Counter

Solution
Prova modificando la sub CreateBitmap credo che da lì disegni la vista.
Ottimo, grazie per la dritta!

In ogni caso il font lo prende da lbl e quindi é modificabile da design sulle proprietà label
Vorrei avere un Animated Counter con possibilità di modificare il font anche successivamente da parte dell'utente.

Mi sto inoltrando in qualcosa in cui sono poco pratico e mi pare di esserci riuscito, anche se non so bene come... 🤔 😅

B4X:
Sub Class_Globals
    ...
    Private mTextColor As Int = xui.Color_Black 'nuova variabile aggiunta
    Public mLabel As B4XView 'nuova variabile aggiunta
End Sub

...

Public Sub DesignerCreateView (Base As Object, lbl As Label, Props As Map)
      ...
    mLabel = lblTemplate ' nuova riga...

Star-Dust

Expert
Licensed User
Longtime User
Prova modificando la sub CreateBitmap credo che da lì disegni la vista.

In ogni caso il font lo prende da lbl e quindi é modificabile da design sulle proprietà label
 
Upvote 0

Elric

Well-Known Member
Licensed User
Prova modificando la sub CreateBitmap credo che da lì disegni la vista.
Ottimo, grazie per la dritta!

In ogni caso il font lo prende da lbl e quindi é modificabile da design sulle proprietà label
Vorrei avere un Animated Counter con possibilità di modificare il font anche successivamente da parte dell'utente.

Mi sto inoltrando in qualcosa in cui sono poco pratico e mi pare di esserci riuscito, anche se non so bene come... 🤔 😅

B4X:
Sub Class_Globals
    ...
    Private mTextColor As Int = xui.Color_Black 'nuova variabile aggiunta
    Public mLabel As B4XView 'nuova variabile aggiunta
End Sub

...

Public Sub DesignerCreateView (Base As Object, lbl As Label, Props As Map)
      ...
    mLabel = lblTemplate ' nuova riga
    mTextColor = mLabel.TextColor ' nuova riga
End Sub

' Call Refresh once new property of mLabel is set
'Usage example:
'<code>
'glbAnimatedCounter1.mLabel.TextColor = xui.Color_Green
'glbAnimatedCounter1.mLabel.Font = fx.CreateFont("System", 25, False, False)
'glbAnimatedCounter1.Refresh</code>
Public Sub Refresh ' nuova sub aggiunta da richiamare una volta impostati i valori di mLabel
    Dim bmp As B4XBitmap = CreateBitmap(mLabel)
    For i = 0 To lstImageViews.Size - 1
        Dim iv As B4XView = lstImageViews.Get(i)
        iv.SetBitmap(bmp)
    Next
End Sub
 
Upvote 0
Solution

Star-Dust

Expert
Licensed User
Longtime User
Per modificarlo da codice, aggiungi un metodo che passi un nuovo valore su mTextColor e fai un refresh.

Mi sembri a buon punto
 
Upvote 0

Elric

Well-Known Member
Licensed User
Per funzionare pare funzioni.

L'esempio per la sub refresh dovrebbe già tenere conto di questo tuo ultimo (e sempre gradito!) suggerimento:
B4X:
glbAnimatedCounter1.mLabel.TextColor = xui.Color_Green
glbAnimatedCounter1.mLabel.Font = fx.CreateFont("System", 25, False, False)
glbAnimatedCounter1.Refresh

Poi, da qui a farla diventare una libreria... forse è già pronta, forse no, non ne ho idea! Non ne ho mai fatta una!
 
Upvote 0
Top