Множество TypeFace в одиночном TextView

Я хочу установить первый символ в TextView с помощью TypeFace и второго символа с другим типом типа и так далее.
Я прочитал этот пример:

 Spannable str = (Spannable) textView.getText(); str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, 7 ,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

но это мне не помогло, потому что я хочу установить несколько TypeFace (external TTFs)
Есть идеи??

Используйте следующий код: (Я использую шрифт 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); 

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

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


Это использует class CustomTypefaceSpan , взятый из того, как я могу использовать TypefaceSpan или StyleSpan с пользовательским шрифтом? :


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

  • Ошибка раздувания classа com.google.ads.AdView
  • Повышение числа на Java
  • android, что не так с openFileOutput?
  • Архивная библиотека Android (aar) против стандартной банки
  • android MapView в fragmentе
  • Разделение на Java всегда приводит к нулю (0)?
  • Можем ли мы перегрузить основной метод в Java?
  • Запретить закрытие экрана активности Android на внешнем прикосновении
  • Java-коллекция пар ценностей? (кортежи?)
  • Как разбить строку java на обратную косую черту
  • Код для загрузки видео с Youtube на Java, Android
  • Interesting Posts
    Давайте будем гением компьютера.