2013-03-07 13 views
10

Opracowałem aplikację informacyjną Tamil w wersji Android 2.3.3. Jednak czcionki tamilskie zostały prawidłowo opracowane w wersji Androida 4.0 i później. Chcę wyświetlać je we wszystkich wersjach Androida komórkowego.Tamilskie czcionki w Androidzie

Próbowałem rozwiązać problem z niektórymi czcionkami tamilskimi, takimi jak bamini i mylai, ale działały tylko w wyższych wersjach Androida.

+0

Użyłem bamini .. To działa na wszystkich wersji. FYI, dla Androida 4.1 i późniejszych, nie potrzebujesz żadnego pliku czcionki. Android domyślnie obsługuje tamil. Jaki masz problem? Daj mi trochę więcej szczegółów. Mogę ci pomóc. –

+0

Dlaczego nie używać Unicode? –

+0

Tak, zgadzam się z tobą Karthik Użyłem fontu bamini i konwertera tamil unicode, ale zajmie mi to trochę czasu, aby wyświetlić w liście. Podczas przewijania listview jego uderzył @Karthik Palanivelu – Loganathan

Odpowiedz

26

Przede wszystkim musisz zrozumieć, że nie ma obsługi języka tamilskiego w systemie operacyjnym Android (z wyjątkiem niewielu telefonów Samsung & SE) do wersji ICS (4.0). Nawet wtedy miał błędy i pełne wsparcie zapewniono Jelly Bean (4.2).

Zobaczysz tylko pola, jeśli używasz w swojej aplikacji kodu Unicode Tamil. Powodem jest brak czcionek tamilskich w systemie.

1. Ręczny sposób wykonywania

Istnieje rozwiązanie dla tego rozwiązania. Wszystko, co musisz zrobić, to: download the Bamini font i umieścić je w folderze zasobów. I stwórz TypeFace z czcionką Bamini i ustaw ją na TextView.

Typeface font1 = Typeface.createFromAsset(getAssets(), "fonts/Bamini.ttf"); 
customText1.setTypeface(font1); 

Teraz użyj kodowania converter to convert Unicode font into Bamini. zamiast tekstu w Unicode podaj przekonwertowany kodowany kod Bamini do metody setText.

2. Korzystanie z biblioteki

Jeśli nienawidzę tych wszystkich instrukcji konwersji kodowania następnie sprawdzić ten library

Jak powiedziałem w powyższej linii, jeśli chcesz zmienić kodowanie dynamicznie podczas uruchamiania aplikacji następnie consider using the library Napisałem dla Androida. Ta biblioteka pomoże Ci przekonwertować ciąg Unicode na Bamini, TSCII, TAB, TAM i Anjal.

Konfiguracja jest bardzo prosta. Wszystko, co musisz zrobić, to po prostu zaimportować bibliotekę do projektu Android i wywołać bibliotekę jak poniżej.

// Initialise the Typeface (assumes TSCII, Bamini, Anjal, TAB or TAM font located inside assets/fonts folder) 
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/mylai.ttf"); 
// Initialises the TextView 
TextView tv = (TextView)findViewById(R.id.textView1); 
//Setting the Typeface 
tv.setTypeface(tf); 
//Magic happens here ;) encoding conversion 
String TSCIIString = TamilUtil.convertToTamil(TamilUtil.TSCII, "வணக்கம் அன்ரொயிட்"); 
//Setting the new string to TextView 
tv.setText(TSCIIString); 

Jest sample app dostępny wraz z biblioteką. Sprawdź w aplikacji, w jaki sposób biblioteka jest wykorzystywana do konwersji ciągu znaków Unicode na Bamini, TAB, TAM, TSCII i Anjal.

Otrzymasz coś takiego podczas korzystania z biblioteki.

Screen Shot Tamil Unicode Converter Utill

Trzeba skorzystać z klasy TypeFace dostępne w Androidzie. Możesz użyć kodowania Bamini lub TSCII (Mylai jest czcionką TSCII).

Nota prawna: Napisałem tę bibliotekę.

3. Dla WebView

Jeśli tworzysz za pomocą HTML i CSS wraped wewnątrz WebView następnie przyjrzeć this application's source. Będziesz musiał skorzystać z funkcji CSS3 w wersji fontface.

Najpierw trzeba mieć styl zadeklarowane jako ten

@font-face { 
font-family: MyCustomFont; 
src: url("Bamini.ttf") /* TTF file for CSS3 browsers */ 
} 

Następnie musisz użyć MyCustomFont w tagach. Na przykład, jeśli chcesz ustawić go do całego ciała (co jest znacznie łatwiejsze w tym przypadku)

body { 
font-family: MyCustomFont, Verdana, Arial, sans-serif; 
font-size: medium; 
color: black 
} 

Nadziei To daje heads up zasługujesz. Mam nadzieję, że zobaczę więcej aplikacji tamilskich w Sklepie Play.

+1

Dzięki za odpowiedź poszedłem za tym, że biblioteka działa prawidłowo. – Loganathan

+0

Jak wyświetlić czcionkę tamilską w oknie dialogowym postępu? – Loganathan

+0

@logu stosowanie stylów jest możliwe, ale nie jestem pewien, czy czcionka tamilska jest możliwa. Będę kopać dalej i zaktualizować tutaj, jeśli natknę się na jakiekolwiek. Zazwyczaj sprawdzam wersję SDK i pokazuję tekst tamilski dla ICS i wyżej dla tekstu angielskiego w starszym urządzeniu. –