Ich würde es ein bisschen anders machen.
Meine Idee: Ermitteln Sie die Abmessungen des Bildschirms und verwenden Sie eine switch/case-Anweisung, um die Größe des textView-Texts anzupassen.
Zum Beispiel:
switch (area) {
case 7inch:
TextView emptyTextView = (TextView)view.findViewById(android.R.id.empty);
emptyTextView.setTextSize(...);
break;
case 4inch:
TextView emptyTextView = (TextView)view.findViewById(android.R.id.empty);
emptyTextView.setTextSize(...);
break;
default:
values_not_caught_above;
}
Sie die Dimensionen des Bildschirms lassen sich wie folgt:
Wenn Sie die Anzeige Abmessungen in Pixel möchten, können Sie getSize verwenden:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
int area = height*width;
Wenn Sie sind nicht in einem Activity
können Sie die Standardanzeige über WINDOW_SERVICE erhalten:
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Vor getSize
eingeführt wurde (in API-Ebene 13), können Sie die getWidth
und getHeight
Methoden verwenden, die jetzt veraltet sind:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
ich mich am besten gefällt, weil es sehr einfach ist, nur einen anderen Fall hinzufügen Aussage für ein zusätzliches Gerät (kann 10inch Bildschirm sein). Fast nichts in Ihrem Code muss auf diese Weise geändert werden.
Sie könnten suche entweder nach der 'TextView' mit der ID' android.R.id.empty' oder, viel besser, implementiere die 'ListFragment'-Ansicht, um eine' ListView' plus die leere Ansicht, eine zentrierte 'TextView' (mit der ID 'anddroid: id/empty'), auf die Sie direkt den dimens-Wert (mit verschiedenen Ordnerwerten) setzen könnten. – Luksprog
Ja, das werde ich tun, wenn ich keine andere Lösung finden kann. Danke –
Die 'leere Ansicht' ist tatsächlich mit der 'ListView' (oder genauer gesagt: der' AdapterView') verbunden und nicht mit der 'ListFragment'. Als solche können Sie [getListView() .getEmptyView() '] (http://developer.android.com/reference/android/widget/AdapterView.html#getEmptyView%28%29) im Fragment aufrufen, um a zu erhalten handle dran. Standardmäßig ist die leere Ansicht eine einfache "TextView", so dass Sie nach einer Besetzung die gewünschten Anpassungen vornehmen können. –