Come impostare la visualizzazione di text nel font malayalam (una lingua locale indiana) in android 2.2

Ho bisogno di mostrare TextView in font malayalam che è una lingua locale indiana. Per questo sto provando sotto il codice

  Typeface custom_typerface = Typeface.createFromAsset(getAssets(), "fonts/AnjaliNewLipi.ttf"); TextView mytext = (TextView)findViewById(R.id.mytext); mytext.setTypeface(custom_typerface); mytext.setText("മലയാള ഭാഷ തന്‍ ഭാവ ശുദ്ധി..."); 

Questo viene visualizzato correttamente su un dispositivo 4.2, ma non in tutti i dispositivi. Come posso renderlo per tutti i dispositivi Android? Qualsiasi aiuto sarà apprezzato.

  • Thread o servizi
  • Android KitKat (API 19) - Come scrivere i messaggi nel provider di contenuti SMS, senza inviarli, da un'applicazione non predefinita?
  • Android - come disegnare una lettera in un punto specifico?
  • Come mascherare correttamente Bitmap con lo shader di LinearGradient?
  • Errore che rinfresca iventory (interrogando i prezzi degli articoli). (risposta: 6: errore)
  • Android WebView con un video youtube incorporato, il button a schermo integer blocca il video
  • rendere il servizio web sicuro
  • Android Wifi dirige la connessione multipla ad hoc
  • Come posso get l'elemento di menu in NavigationView?
  • La strana risposta SOAP, è JSON? Come analizzarlo?
  • Disabilita l'animation predefinita da Ritratto a Paesaggio
  • Problema EditText TextChangeListener
  • 4 Solutions collect form web for “Come impostare la visualizzazione di text nel font malayalam (una lingua locale indiana) in android 2.2”

    Il codice sopra è corretto e dovrebbe mostrare caratteri Malayalam. Ma c'è una cattura. se il telefono non support il carattere, non mostrerà Malayalam, ma mostrerà invece alcune caselle.

    Se si utilizza qualsiasi browser di file e si esamina in system / system / fonts – u vedrà tutti i font supportti dal dispositivo.

    Se si desidera aggiungere nuovi caratteri, è ansible anche farlo, ma il dispositivo deve essere radicato. Molti dei telefoni economici supportno solo pochi tipi di caratteri, ma i telefoni costosi hanno il supporto per molti font.

    Alla fine ho trovato la risposta dopo una lunga ricerca .. Ho convertito i caratteri Unicode a Ascii, sostituendo each carattere Unicode con Ascii. Ecco il codice magico

     mytext.replaceAll("oldChar", "newChar"); 

    utilizzare questo codice per each singolo carattere. 🙂

    Impostare il carattere personalizzato su TextView.

    Hai due modi, per prima cosa vedi il primo modo:

    1. Aggiungi i file dei font alla cartella degli asset, se non esistono cartelle di risorse crearne.

    2. Creare la class CustomTypeface, ad esempio:

     import android.content.Context; import android.content.res.AssetManager; import android.graphics.Typeface; public class CustomTypeface { private static Typeface typefaseArialCondIt; private static Typeface typefaseArialBold; private static Typeface typefaseArialRegular; public CustomTypeface() { } public CustomTypeface(Context context) { AssetManager assets = context.getAssets(); CustomTypeface.typefaseArialCondIt = Typeface.createFromAsset(assets, "fonts/ArialCondIt.otf"); CustomTypeface.typefaseArialBold = Typeface.createFromAsset(assets, "fonts/ArialBold.otf"); CustomTypeface.typefaseArialRegular = Typeface.createFromAsset(assets, "fonts/ArialRegular.otf"); } public static Typeface gettypefaseArialCondIt() { return typefaseArialCondIt; } public static Typeface settypefaseArialCondIt(Typeface typefaseArialCondIt) { return CustomTypeface.typefaseArialCondIt = typefaseArialCondIt;; } public static Typeface gettypefaseArialBold() { return typefaseArialBold; } public static Typeface settypefaseArialBold(Typeface typefaseArialBold) { return CustomTypeface.typefaseArialBold = typefaseArialBold;; } public static Typeface gettypefaseArialRegular() { return typefaseArialRegular; } public static void settypefaseArialRegular(Typeface typefaseArialRegular) { CustomTypeface.typefaseArialRegular = typefaseArialRegular; } } 

    3. Impostare il carattere personalizzato su TextView:

     TextView yourTextView = (TextView) findViewById(R.id.textView1); yourTextView.setTypeface(CustomTypeface.gettypefaseArialRegular); 

    O secondo modo, crea TextView personalizzato con i tuoi font:

     import android.content.Context; import android.graphics.Typeface; import android.util.AttributeSet; import android.widget.TextView; public class ArialTextView extends TextView { public ArialTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public ArialTextView(Context context, AttributeSet attrs) { super(context, attrs); } public ArialTextView(Context context) { super(context); } @Override public void setTypeface(Typeface tf, int style) { if (style == Typeface.BOLD) { setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/ArialBold.otf")); } else if (style == Typeface.NORMAL) { setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/ArialRegular.otf")); } else if (style == Typeface.ITALIC) { setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/ArialCondIt.otf")); } } } 

    E nel xml layout è ansible creare TextView personalizzato, ad esempio:

     <com.your.package.ArialTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="TextView with your custom font"/> 

    Non sono sicuro se questo potrebbe funzionare nel tuo caso ma ho lavorato con il font di Punjabi. Quello che ho fatto non è stato copiato o inserito il text nella string e quindi utilizzare il carattere. Certamente usa il carattere, ma per poter funzionare correttamente bisogna inserire il text Malayalam in Transliteration, come nel seguente esempio in Hindi, come non conosco Malayalam.

    PUL

      Typeface custom_typerface = Typeface.createFromAsset(getAssets(), "fonts/AnjaliNewLipi.ttf"); TextView mytext = (TextView)findViewById(R.id.mytext); mytext.setTypeface(custom_typerface); mytext.setText("PUl"); //Assuming you know Hindi PUl in hindi is फूल 

    Questo mostrerà il text nel formato corretto senza problemi, tuttavia, se semplicemente entri

     mytext.setText("फूल"); 

    È molto probabile che non renderà correttamente il font. Spero che aiuti. 🙂

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.