Intereting Posts
«Файлы« Gradle »изменились с момента последней синхронизации проекта.» Всегда отображается сообщение В отчетах Play Store «Ваше устройство несовместимо с этой версией», но он устанавливает через adb как можно лучше на Nexus7 Какой значок правильного размера для drawable-xxhdpi? Преобразование YUV в RGB и отображение с использованием opengl es 2.0 из android ndk с использованием шейдеров Android: рейтинг не отображается, становится видимым только при касании Лучшая практика для ссылки на родительскую активность фрагмента? Написание приложения для Android и iOS Не удается разрешить символ AppCompatActivity. Поддержка библиотек v7 не распознается? Android получает изображение из галереи в ImageView Оверлейная анимация Facebook Android Studio Update Fails Значок приложения Android Launcher не обновлен до нового значка после обновления рынка Двигатель андроидной физики Добавление ActionBar в приложение Android API уровня 8? Можно ли отменить предыдущий Toast, когда я хочу показать другой Toast?

Android-тамильский шрифт между английским словом

У меня есть TextView, у которого есть огромный текст между мной есть слово tamil, и я знаю, как вставлять шрифт tamil в отдельный текст. Но мне нужно слово tamil между английским словом, пожалуйста, спасибо заранее

Моя часть текста в текстовом виде:

В Коламе используются сезонные сообщения, такие как welcome (நல்வரவு). Волонтерство, чтобы привлечь колам в храм, иногда делается, когда преданный

Solutions Collecting From Web of "Android-тамильский шрифт между английским словом"

Попробуйте установить этот шрифт Akshar.ttf в TextView через setTypeface, он поддерживает английский и тамильский языки.


Вот результат:

Введите описание изображения здесь

Или ищите похожий шрифт, который поддерживает оба языка.


Второе решение – использовать изображение для этой небольшой части текста тамилов, используя SpannableStringBuilder .


Код для установки настраиваемого шрифта в TextView:

Предполагая, что у вас есть шрифт Akshar.ttf в папке fonts в папке с ресурсами :

Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Akshar.ttf"); TextView tv = (TextView) findViewById(R.id.CustomFontText); tv.setTypeface(tf); tv.setText("Seasonal messages like welcome (நல்வரவு) is used in Kolam. Volunteering to draw kolam at temple is sometimes done when a devotee's"); 

Существует еще одно решение, если вы хотите поддерживать несколько шрифтов в TextView, но они не поддерживаются в одном ttf:

Используйте следующий код: (Я использую шрифт Bangla и Tamil)

  TextView txt = (TextView) findViewById(R.id.custom_fonts); txt.setTextSize(30); Typeface font = Typeface.createFromAsset(getAssets(), "Akshar.ttf"); Typeface font2 = Typeface.createFromAsset(getAssets(), "bangla.ttf"); SpannableStringBuilder SS = new SpannableStringBuilder("আমারநல்வரவு"); SS.setSpan (new CustomTypefaceSpan("", font2), 0, 4,Spanned.SPAN_EXCLUSIVE_INCLUSIVE); SS.setSpan (new CustomTypefaceSpan("", font), 4, 11,Spanned.SPAN_EXCLUSIVE_INCLUSIVE); txt.setText(SS); 

Результатом является:

Введите описание изображения здесь


CustomTypefaceSpan Класс:

 package my.app; import android.graphics.Paint; import android.graphics.Typeface; import android.text.TextPaint; import android.text.style.TypefaceSpan; public class CustomTypefaceSpan extends TypefaceSpan { private final Typeface newType; public CustomTypefaceSpan(String family, Typeface type) { super(family); newType = type; } @Override public void updateDrawState(TextPaint ds) { applyCustomTypeFace(ds, newType); } @Override public void updateMeasureState(TextPaint paint) { applyCustomTypeFace(paint, newType); } private static void applyCustomTypeFace(Paint paint, Typeface tf) { int oldStyle; Typeface old = paint.getTypeface(); if (old == null) { oldStyle = 0; } else { oldStyle = old.getStyle(); } int fake = oldStyle & ~tf.getStyle(); if ((fake & Typeface.BOLD) != 0) { paint.setFakeBoldText(true); } if ((fake & Typeface.ITALIC) != 0) { paint.setTextSkewX(-0.25f); } paint.setTypeface(tf); } } 

Справка

У меня была эта проблема в Android 4.0. Я обнаружил, что это связано с csc (Код страны). Если это Индия, то Тамил работает правильно, иначе не работает. Я могу это подтвердить.

До ICS (4.0) шрифт Tamil не был доступен в Android-системах. Даже тогда у него были ошибки, и Google исправил все это с помощью Jelly Bean (4.2).

Теперь, если вы хотите показать Тамил в своем приложении, вам нужно использовать кодировки TAB, TAM, BAMINI или TSCII.

Я написал простую библиотеку, которая делает преобразование для вас динамически . Все, что вам нужно написать, это простой код, как показано ниже.

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

Я написал больше на эту тему в этом ответе. Пожалуйста, проверьте это тоже.