Lo farei in modo un po 'diverso.
La mia idea: trova le dimensioni dello schermo e usa un'istruzione switch/case per adattare il testo alle dimensioni del testo.
Ad esempio:
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;
}
Si possono trovare le dimensioni dello schermo come segue:
Se si desidera che le dimensioni di visualizzazione in pixel è possibile utilizzare getSize:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
int area = height*width;
Se non sei in uno Activity
puoi ottenere lo schermo predefinito tramite WINDOW_SERVICE:
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Prima getSize
è stato introdotto (nel livello di API 13), è possibile utilizzare i getWidth
e getHeight
metodi che sono ormai obsoleti:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
Mi piace il mio modo migliore perché è molto facile aggiungere solo un altro caso dichiarazione per un dispositivo aggiuntivo (potrebbe essere schermo da 10 pollici). Quasi nulla nel tuo codice dovrà cambiare in questo modo.
si potrebbe o cercate 'TextView' usando l'id' android.R.id.empty' o, molto meglio, implementate la vista 'ListFragment' per contenere un' ListView' oltre alla vista vuota, un 'TextView' centrato (con l'id 'anddroid: id/empty') a cui è possibile impostare direttamente il valore di dimensione (con valori di cartella diversi). – Luksprog
sì, questo è quello che farò se non trovo altre soluzioni. Grazie –
La 'vista vuota' è in realtà associata a 'ListView' (o più preciso:' AdapterView'), e non a 'ListFragment'. Come tale, puoi chiamare ['getListView() .getEmptyView()'] (http://developer.android.com/reference/android/widget/AdapterView.html#getEmptyView%28%29) nel frammento per ottenere un gestiscilo. Di default la vista vuota è un semplice 'TextView', quindi dopo un cast è possibile applicare le personalizzazioni desiderate. –