2012-03-24 10 views
5

Paint.measureText nie jest dokładny z tekstem arabskim. Oto, co próbowałem:Android TextView measureText dla języka arabskiego

Mam TextView tv1.

tv1.getWidth(); daje 480, co jest w porządku. tv1.getPaint().measureText("المؤلف : عبدالرحمن ابن أبي بكر أبو الفضل السيوطي"); daje 502, która jest większa niż szerokość ekranu.

Zły wynik, ponieważ tekst zajmuje około 80% szerokości linii! Wynik powinien wynosić około 400.

Dziękuję.

+0

Witam yZaroui, ja też mam ten sam rodzaj problemu. proszę mi pomóc, jeśli masz na to rozwiązanie. – Raj

+0

Ja też mam ten sam problem, a problem pojawia się tylko na karcie Galaxy! Działa dobrze na Galaxy S3! – AVEbrahimi

+0

Mam do czynienia z tym samym problemem, spróbuj zmienić czcionkę. –

Odpowiedz

0

Dzisiaj stanąłem przed tym problemem. wszystko działa zgodnie z oczekiwaniami i powinieneś wiedzieć, że gdy twój tekst zawiera samogłoski arabskie, takie jak ّ ِ ُ َ, wszystkie są obliczane na szerokość jako oddzielne znaki i android Paint.measureText nie jest świadomy, że nie powinien brać tych znaków pod uwagę, ponieważ nie dodamy dodatkowej szerokości i będą one rysowane na górze i na dole innych znaków.

Rozwiązanie: najpierw należy usunąć te znaki z tekstu, a następnie zmierzyć tekst.

Powiązane problemy