2017-11-21 109 views
7

Pracuję nad aplikacją, w której muszę wyświetlać tekst otrzymany z odpowiedzi serwera w postaci textview. Tekst może być w English or Hindi. W przypadku hindi, niektóre litery są zastępowane znakami zapytania (?). Jaki jest problem? Tak ustawiam mój tekst. Android version 6. Czcionki Type Proxima Nova Alt RegularTekst w języku hindi nie jest poprawnie renderowany w Androidzie

for (int i = 0; i < 3; i++) { 
viewHolder.lines[i].setText(poem.lines[i].lineText); 
} 

enter image description here

+5

dać mi przykładowy tekst hindi –

Odpowiedz

-1

Utwórz folder czcionki w folderze Aplikacje aktywów i umieścić tam swoje własne czcionki. A następnie ustawić fontFamily atrybut w TextView jak pokazano poniżej:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:fontFamily="NameOfYourCustomFonts"/> 
-1

Pobierz Hindi Font stąd: http://fonts.webtoolhub.com/font-n17979-kruti-dev-010.aspx

umieścić tę czcionkę w "aktywa" folderu: app/src/main/aktywa/Kruti-dev -010.ttf

Typeface hindiFont = Typeface.createFromAsset(MainActivity.this.getAssets(), "fonts/Kruti_Dev_010.ttf"); 
    txtFont.setTypeface(hindiFont); 
    txtFont.setText("एनडीटीवी इंडिया : हिन्दी समाचार की आधिकारिक वेबसाइट"); 
2

Z twojego pytania wynika, że ​​niektóre litery są renderowane poprawnie, a inne nie. Jest to oczywiście problem ze zgodnością czcionek. Pobierz nową czcionkę do wersji Androida, jeśli chcesz użyć niestandardowej czcionki.

Jednak na wielu nowych urządzeniach z Androidem (w szczególności na systemie Android 6 i nowszych wersjach językowych) domyślnie obsługiwany jest język hindi. W takim przypadku po prostu sprawdź numer telefonu Settings --> Language & input. Jeśli hindi jest obsługiwane, po prostu zmień ustawienia regionalne aplikacji na język hindi i powinno działać.

Configuration.Locale = new Locale("hi", "IN"); 
-1

Spróbuj przekonwertować ciąg do UTF-8 jak

viewHolder.lines[i].setText(URLDecoder.decode(poem.lines[i].lineText,"UTF-8");