German Android-Einstellungen "Schriftgröße"

Discussion in 'German Forum' started by peternmb, Mar 15, 2015.

  1. peternmb

    peternmb Active Member Licensed User

    Hallo,
    kann ich irgendwie auslesen, wie der Anwender in seinen Displayeinstellungen die Schriftgröße eingestellt hat?

    Ich verwende für meine App eine an die Displaygröße und den Scalefaktor angepasste Schrftgröße,
    z.B. "Tsize2= (3.0%y)/lv.Scale" oder auch
    z.B. "Typeface.Default"
    das passt dann z.B. bei eingestellter Schriftgröße "sehr groß" beides nicht mehr in der Optik.

    Oder mache ich da was falsch und es gibt es eine andere Möglichkeit das zu lösen?
     
  2. Filippo

    Filippo Expert Licensed User

    Hallo peternmb,

    ich stand auch schon vor dem gleiche Problem.
    Mit diesem Code-Modul habe ich mein Problem gelöst. Damit wird in deine App die Schriftgröße immer auf normal gesetzt.
    Code:
    'Code module
    'Subs in this code module will be accessible from all modules.
    Sub Process_Globals
        
    'These global variables will be declared once when the application starts.
        'These variables can be accessed from all modules.
    End Sub

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

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

    'User-Schriftgröße auf Normal zurücksetzten.
    Sub SetActivityTypeface(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
     
    peternmb and RauchG like this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice