Изменить шрифт тоста

В настоящее время я пытаюсь разработать приложение. И я не знаю, как изменить шрифт Toast. ,

final OnClickListener clickListener = new OnClickListener() { public void onClick(View v) { try { Toast.makeText(nova.this,"Hello", 500000).show(); } catch (Exception e) { Toast.makeText(nova.this,"Exception:" +e, 500000); } } }; 

Я хочу изменить текст «Привет» с помощью специального шрифта, который я пробовал с помощью TypeFace.

И Затем я хочу установить переменную в месте «TextClicked». Я пробовал с локальной переменной .. но она не работает

Любая помощь с примером исходного кода будет для меня действительно отличной.

Solutions Collecting From Web of "Изменить шрифт тоста"

Из официальной документации:

Создайте свой собственный ToastView

Если простого текстового сообщения недостаточно, вы можете создать индивидуальный макет для вашего тоста-уведомления. Чтобы создать пользовательский макет, определите макет вида в XML или код приложения и передайте корневой объект View в метод setView(View) .

После ссылки на официальную документацию Google будут представлены примеры.

Ответ здесь: https://stackoverflow.com/a/13231981

После рефакторинга немного:

  Toast toast = Toast.makeText (контекст, R.string.yummyToast, Toast.LENGTH_SHORT);
     LinearLayout toastLayout = (LinearLayout) toast.getView ();
     TextView toastTV = (TextView) toastLayout.getChildAt (0);
     toastTV.setTextSize (30);
     toast.show ();

Это работало для меня как шарм!

Вы можете использовать SpannableString для установки шрифта:

 Typeface font = Typeface.createFromAsset(getAssets(), "fonts/ATaha.ttf"); SpannableString efr = new SpannableString("Toast font changed!"); efr.setSpan(new TypefaceSpan(font), 0, efr.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); Toast.makeText(this, efr, Toast.LENGTH_SHORT).show(); 

Пользовательский класс Span, который имеет определенный набор шрифтов:

 public class TypefaceSpan extends MetricAffectingSpan { private Typeface mTypeface; public TypefaceSpan(Typeface typeface) { mTypeface = typeface; } @Override public void updateMeasureState(TextPaint p) { p.setTypeface(mTypeface); p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); } @Override public void updateDrawState(TextPaint tp) { tp.setTypeface(mTypeface); tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); } } 

К сожалению, код на странице Java прослушивается. Вот ссылка на рабочую функцию, которую вы можете реализовать, которая дает вам текст (я знаю, потому что я его протестировал), и с небольшой изобретательностью может быть расширен, чтобы передавать аргументы для размера, цвета и т. Д. …

Функция размера шрифта Toast здесь