2016-08-30 23 views
5

Próbuję wykorzystać układ TextInput dla pływających etykiet dostępnych w Androidzie projektowania materiałów, gdzie wyświetlany jest błąd przy użyciu flagi app: errorTextAppearance. Dla tego błęduTextAppearance nie mogę zastosować czcionki niestandardowej.Niestandardowa czcionka dla komunikatu o błędzie z TextInputLayout w Androidzie

Mogę zmienić kolor i inne rzeczy, ale nie mogę zastosować czcionki niestandardowej.

Próbuję dopasować styl czcionki "Proszę wybrać pytanie" z "Proszę podać odpowiedź" P.S "Proszę wybrać pytanie" było zwykłym widokiem tekstowym i mogłem łatwo zmienić czcionkę.

Nie mogę opublikować obrazu, ale pod linkiem znajduje się.

Input Text Layout

mógłbyś mi pomóc z tym problemem.

Odpowiedz

0

Jak wspomniano here:

Można użyć SpannableString ustawić czcionkę:

SpannableString s = new SpannableString(errorString); 
s.setSpan(new TypefaceSpan(font), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
mPasswordView.setError(s); 

Niestandardowy span class, który ma określony zestaw Typeface:

public class TypefaceSpan extends MetricAffectingSpan { 
    private Typeface mTypeface; 
    public TypefaceSpan(Typeface typeface) { 
     mTypeface = typeface; 
    } 

    @Override 
    public void updateMeasureState(TextPaint p) { 
     p.setTypeface(mTypeface); 
     p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); 
    } 

    @Override 
    public void updateDrawState(TextPaint tp) { 
     tp.setTypeface(mTypeface); 
     tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); 
     } 
    } 
Powiązane problemy