2016-03-30 12 views
3

Ich bin auf der Suche nach der Größe eines EditText Höhe, basierend auf der Höhe der Textgröße.Resize EditText auf Textgröße anpassen

Der Grund, warum ich dies tun möchte, ist, weil einige Benutzer ihre Textgröße auf "Large" innerhalb der Android-Eingabehilfen einstellen, und dann wird ein Teil des Textes in den EditText-Ansichten meiner Anwendungen abgeschnitten.

Was kann ich tun, um die Höhe dynamisch an die Textgröße anzupassen? Ich brauche keine automatische Größenanpassung oder etwas Besonderes.

Hier ist ein Code in meiner benutzerdefinierten EditText Klasse

mCurrentTextSize = getTextSize(); 
    LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, 
                           DisplayUtils.pixel2dp(getContext(), mCurrentTextSize)); 
    setLayoutParams(layoutParams); 

Innerhalb einer Utility-Klasse

public static int pixel2dp(Context context, float pixel) { 
    DisplayMetrics metrics = new DisplayMetrics(); 
    float logicalDensity = metrics.density; 

    return (int) Math.ceil(pixel/logicalDensity); 
} 
+0

Sie also eigentlich die Höhe flexibel sein aber auch nur eine Zeile anzeigen? – fillobotto

+0

Ich möchte nur 1 Zeile verwenden. In meiner Anwendung ist der Text bearbeiten breit genug, aber nicht groß genug, wenn der Benutzer die Textgröße im Telefon ändert. –

+3

Ich frage mich nur: Setzen Sie Layout-Höhe-Parameter auf "WRAP_CONTENT" und dann 'setSingleLine (true)' über Sie steuern, es funktioniert nicht? – fillobotto

Antwort

0

Warum nicht layout_height=wrap_content verwenden? Es passt den EditText automatisch so an, dass er den Text enthält.