Niestandardowa czcionka w systemie Android renderuje inaczej w różnych interfejsach API

Używam niestandardowej czcionki .ttf w mojej aplikacji na Androida. Ładuję to w zwykły sposób:

myTypeface = Typeface.createFromAsset( getAssets(), "myTypeface.ttf");

wtedy przypisuję mój krój pisma do mojej aktywności ... całkiem proste rzeczy:

TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setTextSize(12);
tv.setTypeface(App.myTypeface);

Problem, z którym się spotykam, polega na tym, że na niektórych urządzeniach korzystających z późniejszych interfejsów API (zauważyłem to w emulatorze dla Asus Transformer) tekst wygląda nieco pogrubiony, mniej jednolity pod względem szerokości i bardziej pomieszany w układzie pionowym. Przez tę ostatnią część rozumiem, że niektóre postacie są umieszczane pionowo nieco wyżej lub niżej niż inne, nadając tekstowi nieco charakteru kolejki górskiej.

Rozważmy poniższe zrzuty ekranowe

Jest to tekst renderowany na emulatorze o tej samej rozdzielczości i dpi co Transformer, ale z wykorzystaniem poziomu API Google 8.

Wygląda całkiem normalnie, prawda?

Rozważ teraz tekst renderowany w emulatorze o tej samej rozdzielczości i dpi, ale używając Google API poziom 15:

Początkowo tekst może wyglądać podobnie, choć można zauważyć, że wydaje się on nieco odważniejszy. Jednak spójrz na „c” w „szybki”. Zauważysz, że siedzi niżej i jest wyższy niż „c” w pierwszym renderowaniu. Zauważysz również, że jeśli spojrzysz na dół znaków w słowie „szybki”, nie będą one wyrównane na dole.

Problemy te mogą wydawać się małe, ale na ekranach z dużą ilością tekstu zaczyna wyglądać naprawdę nieprofesjonalnie.

Ktoś to widział lub miał jakieś wyjaśnienie? Chciałbym, aby tekst wyglądał na jednolity w późniejszych interfejsach API.

Bardzo dziękuję za poświęcony czas!

questionAnswers(1)

yourAnswerToTheQuestion