Jak mogę uzyskać wysokość daszka danego łańcucha?Jak mogę uzyskać wysokość daszka danego łańcucha?
Przykładowo
abc
należy zwrócić 0.abcl
należy zwrócić 0.abcp
powinna powrócić odległości od linii descnder do wartości wyjściowych.abclp
powinien zwracać odległość od linii oparcia do linii bazowej.
Najlepszym mogę wyszedł tak daleko jest
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();
}
Jednak moje zapachy kodu jest to, że nie są wystarczająco dobre. Czy istnieje lepszy i szybszy sposób?
Pytanie, jak się dowiedzieć, czy istnieje znak z niezerowym zejściem w obrębie danego ciągu znaków. –
Przepraszam, zbyt szybko czytałem. Prawdopodobnie masz najlepsze rozwiązanie w swoim kodzie. – emidander