Come posso ottenere l'altezza del discensore di una determinata stringa?Come posso ottenere l'altezza del discensore di una determinata stringa?
Per esempio,
abc
dovrebbe restituire 0.abcl
dovrebbe restituire 0.abcp
dovrebbe restituire distanza dalla linea di descnder al basale.abclp
deve restituire la distanza dalla linea di discendenza alla linea di base.
il meglio che potessi uscito finora è
private int getDecender(String string, Paint paint) {
// Append "l", to ensure there is Ascender
string = string + "l";
final String stringWithoutDecender = "l";
final Rect bounds = new Rect();
final Rect boundsForStringWithoutDecender = new Rect();
paint.getTextBounds(string, 0, string.length(), bounds);
paint.getTextBounds(stringWithoutDecender, 0, stringWithoutDecender.length(), boundsForStringWithoutDecender);
return bounds.height() - boundsForStringWithoutDecender.height();
}
Tuttavia, il mio codice odore è che essi non sono abbastanza buone. C'è un modo migliore e più veloce?
La domanda come scoprirlo, c'è un carattere con una discesa diversa da zero all'interno di una determinata stringa. –
Scusa, ho letto troppo velocemente. Probabilmente hai la migliore soluzione nel tuo codice. – emidander