German Vergrößerte Darstellung verhindern

so27

Active Member
Licensed User
Hallo zusammen,

bei manchen Geräten kann das System eine vergrößerte Schrift darstellen. Hier kommt es dann in meiner App zu Problemen, dass manche Textfelder (Labels) nicht komplett lesbar sind. Wie kann ich das in meiner App verhindern, dass trotz der vom System vergrößerten Schriftart meine exakt eingestellte Schriftart verwendet wird? Muss ich dazu bei einem Label extra eine Schriftgröße definieren?
 

Filippo

Expert
Licensed User
Hallo zusammen,

bei manchen Geräten kann das System eine vergrößerte Schrift darstellen. Hier kommt es dann in meiner App zu Problemen, dass manche Textfelder (Labels) nicht komplett lesbar sind. Wie kann ich das in meiner App verhindern, dass trotz der vom System vergrößerten Schriftart meine exakt eingestellte Schriftart verwendet wird? Muss ich dazu bei einem Label extra eine Schriftgröße definieren?
Für dieses Problem verwende ich die folgende Routine:

B4X:
Sub Activity_Create(FirstTime As Boolean)
...
SetActivityFont(Activity)
...
End Sub

Sub getScale As Float
    Dim access As Accessiblity
    Return access.GetUserFontScale
End Sub

'User-Schriftgröße auf Normal zurücksetzten.
Sub SetActivityFont(act As Activity)
    Dim fscale As Float = getScale
    For Each v As View In act.GetAllViewsRecursive
        If fscale <> 1 Then
            ChangeFontsize(v, fscale)
        End If
    Next
End Sub

Private Sub ChangeFontsize(v As View, fscale As Float)
    If v Is Label Then
        Dim lbl As Label = v
        lbl.TextSize = NumberFormat2(lbl.TextSize / fscale,1,0,0,False)
    Else If v Is Button Then
        Dim s As Button = v
        s.TextSize = NumberFormat2(s.TextSize / fscale,1,0,0,False)
    End If
End Sub
 

so27

Active Member
Licensed User
@Filippo , ich habe die Routine in meiner App getestet. Klappt soweit ganz gut, nur werden nicht alle Elemente auf 1 gesetzt. Gibt es da auch eine Möglichkeit?
 

Filippo

Expert
Licensed User
@Filippo , ich habe die Routine in meiner App getestet. Klappt soweit ganz gut, nur werden nicht alle Elemente auf 1 gesetzt. Gibt es da auch eine Möglichkeit?
In dem Sub "ChangeFontsize" wird nur nach Label und Button gefiltert, versuche mit auch anderen View wie "b4xView".
 
Top