2013-03-07 8 views
10

Ho sviluppato un'applicazione di notizie Tamil nella versione Android 2.3.3. Tuttavia, i font Tamil sono stati sviluppati correttamente solo nelle versioni Android 4.0 e successive. Voglio mostrarli in tutte le versioni di Android Mobile.Font Tamil in Android

Ho provato a risolvere il problema con alcuni caratteri Tamil, come bamini e mylai, ma hanno funzionato solo nelle versioni di Android più elevate.

+0

ho usato bamini .. Funziona su tutte le versioni. Cordiali saluti, per Android 4.1 e versioni successive, non è necessario alcun file di font. Android supporta tamil per impostazione predefinita. Che problema hai? Dammi qualche altro dettaglio. Potrei essere in grado di aiutarti. –

+0

Perché non utilizzare unicode? –

+0

Sì, sono d'accordo con te Karthik Ho usato il font bamini e il convertitore unicode tamil ma mi ci vorrà del tempo per mostrarlo in listview.While scorrendo la listview è colpito @Karthik Palanivelu – Loganathan

risposta

26

Prima di tutto devi capire che non esiste supporto per la lingua Tamil nel sistema operativo Android (tranne alcuni telefoni Samsung & SE fino a ICS (4.0). Anche in quel caso aveva bug e il supporto completo è fornito da Jelly Bean (4.2).

Vedrai solo le caselle se usi il font Unicode Tamil nella tua app. La ragione è che non ci sono caratteri Tamil nel sistema.

1. modo manuale di fare

C'è un lavoro in giro per questa soluzione. Tutto quello che devi fare è, download the Bamini font e metterlo nella cartella delle risorse. E crea TypeFace con il font Bamini e impostalo su TextView.

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

Ora utilizzare una codifica converter to convert Unicode font into Bamini. invece del testo Unicode fornire lo script codificato Bamini convertito nel metodo setText.

2. Utilizzo della libreria

Se odiate tutti questi conversione della codifica manuale quindi controllare questo library

Come ho detto nella linea di cui sopra, se volete modificare la codifica in modo dinamico durante l'esecuzione dell'applicazione poi consider using the library Ho scritto per Android. Questa libreria ti aiuterà a convertire la stringa Unicode in Bamini, TSCII, TAB, TAM e Anjal.

La configurazione è molto semplice. Tutto quello che devi fare è semplicemente importare la libreria nel tuo progetto Android e chiamare la libreria come di seguito.

// 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); 

C'è un sample app disponibile insieme con la biblioteca. Controlla l'app su come viene utilizzata la libreria per convertire la stringa Unicode in Bamini, TAB, TAM, TSCII e Anjal.

Si otterrebbe qualcosa di simile quando si utilizza la libreria.

Screen Shot Tamil Unicode Converter Utill

Hai bisogno di fare uso della classe TypeFace disponibile in Android. È possibile utilizzare la codifica Bamini o TSCII (Mylai è un font TSCII).

Disclaimer: Ho scritto questa libreria.

3. Per WebView

Se si sta sviluppando utilizzando HTML e CSS wraped all'interno di una WebView poi dare un'occhiata a this application's source. Dovrai utilizzare la funzione fontface di CSS3.

In primo luogo è necessario avere stile dichiarato come questa

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

Poi devi utilizzare il MyCustomFont nei tag. Per esempio, se si vuole imposta su tutto il corpo (che è molto più facile in questo caso)

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

Spero che questo darebbe il testa a testa che vi meritate. Spero di vedere più app Tamil nel Play Store.

+1

Grazie per la tua risposta ho seguito solo quella libreria. Funzionava bene. – Loganathan

+0

Come visualizzare la finestra di dialogo font in tamil – Loganathan

+0

@logu è possibile applicare gli stili, ma non sono sicuro che il font Tamil sia possibile. Scoverò ulteriormente e aggiorno qui se trovo qualcuno. Di solito controllo la versione dell'SDK e mostro il testo Tamil per ICS e sopra per il testo inglese del dispositivo precedente. –