Non riesco a trovare da nessuna parte c'è una menzione di come viene misurato getTextSize() in Textview. Dai test visivi non sembra includere i discendenti, ma sembra includere ascender. Sembra che non inizi esattamente dalla linea di base.TextView Android getTextSize() include discendenti, ascendenti
http://en.wikipedia.org/wiki/Descender
Questa è la menzione più vicino di esso, ma Romain Guy da Google solo ignora che una parte della questione.
http://www.mail-archive.com/[email protected]/msg08514.html
Come ho bisogno di questo come sto usando Composto drawable e ho bisogno di essere in grado di allineare il drawable al testo su dispositivi diversi.
Ecco il codice che ho usato per testare su un composto drawable un cerchio che tocca i bordi
tvData.setTextSize(TypedValue.COMPLEX_UNIT_PX, 100);
tvData.setText("agB5ãÂ");
int size = (int)tvData.getTextSize();
Drawable img = getResources().getDrawable(R.drawable.circle_white_full_72).mutate();
img.setBounds(0 , 0 , size , size);
tvData.setCompoundDrawables(null, null, img, null);
Ecco il risultato
come si può vedere che non sembra utilizzare i discendenti e ascendenti.
Ecco l'immagine drawable, se gli altri vogliono testare http://i.imgur.com/Yhf8b.png
Quando si cambia l'immagine al 80% della dimensione del testo utilizzando
int size = (int)tvData.getTextSize() *80/100;
Ecco il risultato, con l'immagine trasposta su cima all'immagine al 100%. Forse setCompoundrawables sta facendo di essa la propria scala
ho provato la misurazione punti medi del tipo di carattere e disegnabile ed è fuori. Ecco un'immagine che la evidenzia
Infine ho spostato i 50 pixel disegnabili a sinistra, quindi ho misurato l'output ed era pari a metà dell'altezza della linea di base del testo del carattere sulla linea di base, poiché setTextSize era impostato su 100px.
Android deve utilizzare un altro layout per ridimensionare e posizionare il composto estraibile. Forse dovrei creare un'altra domanda per questo. Ecco un'immagine che evidenzia la linea di base rispetto alla linea di base.
Conosco l'altezza del font per indicare "include ascender, ma non discender", ma non riesco a trovare un riferimento autorevole con cui rispondere alla tua domanda. Quindi per ora, le prove aneddotiche dovranno fare: ho sempre capito "altezza del carattere" per indicare ciò che descrivi. – Barend
Vieni a pensarci, "dalla linea di base alla linea di base" è equivalente e ha più senso all'interno del dominio. – Barend
@BarendGarvelink Credo che sarebbe in testa. – kcoppock