Диалоговое окно «Изменение шрифта шрифта» Android

Я хочу изменить шрифт названия диалоговом окне оповещения.

Может ли кто-нибудь сказать, как я могу это сделать ..?

Любая помощь будет оценена ..

Solutions Collecting From Web of "Диалоговое окно «Изменение шрифта шрифта» Android"

Я нашел простое решение.

Сначала я задавал заголовок своего окна оповещения

builder.setTitle("My Title"); 

Поэтому я не смог изменить шрифт.

Тогда то, что сработало для меня, это ..

Я создал простой TextView:

 TextView tv2; 

И установите все свойства TextView, которые я хотел …

И затем я заменил свой

 builder.setTitle("My Title"); 

линия с

 builder.setCustomTitle(tv2); 

И теперь я могу изменить Title Color , Font Etc, tv2's свойства tv2's .

Никакие ответы не позволяют изменить шрифт названия AlertDialog . Вот что я сделал:

Создайте класс ниже:

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

Добавьте следующий метод утилиты:

 /** * <p>Return spannable string with applied typeface in certain style</p> * * http://stackoverflow.com/questions/8607707/how-to-set-a-custom-font-in-the-actionbar-title * * @param typeface * The typeface to set to the {@link SpannableString} * @param string * the string to place in the span * @return SpannableString that can be used in TextView.setText() method */ public static SpannableString typeface(Typeface typeface, CharSequence string) { SpannableString s = new SpannableString(string); s.setSpan(new TypefaceSpan(typeface), 0, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return s; } 

Наконец, установите шрифт при создании своего AlertDialog :

 Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "fonts/your_font.ttf"); new AlertDialog.Builder(getActivity()) .setTitle(FontUtils.typeface(typeface, "The title")) /* .. */ .create(); 

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

Вот как вы раздуваете макет и применяете его к AlertDialog

 LayoutInflater li = LayoutInflater.from(ctx); View view = li.inflate(R.layout.formatted_dialog, null); AlertDialog.Builder builder = new AlertDialog.Builder(ctx); builder.setTitle("Formatted"); builder.setView(view); 

Определите все форматирование и стили, необходимые в указанном вами макете.

Вы можете получить доступ к определенному текстовому виду, определенному в макете, с помощью

 LayoutInflater li = LayoutInflater.from(ctx); View view = li.inflate(R.layout.formatted_dialog, null); TextView label=(TextView)view.findViewById(R.id.i_am_from_formatted_layout_lable); 

Пример макета, сохраненный как res / layout / link.xml:

В вашем onCreate() или где или когда вы хотите вызвать AlertDialog

 LayoutInflater li = LayoutInflater.from(this); View view = li.inflate(R.layout.link, null); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Formatted"); builder.setView(view).create().show(); TextView text=(TextView) findViewById(R.id.text); 

Замените this на объект контекста, если вы вызываете какой-либо другой метод.

Сделайте так:

 Dialog dialog = new Dialog(ActivityName.this); dialog.setContentView(R.layout.dialog_name); dialog.setCancelable(true); dialog.findViewById(R.id.text).setTypeface(Typeface.createFromAsset(getAssets(), "font.ttf")); 

Добавьте файл font.ttf в папку с ресурсами и используйте его, как указано выше.

Вместо того, чтобы указывать текст alertdialog, вы должны установить пользовательский вид формы ваших макетов. И прежде чем вы это сделаете, измените шрифт вашего представления. Попробуйте этот пример

 TextView content = new TextView(this); content.setText("on another font"); content.setTypeface(Typeface.SANS_SERIF); 

// Используйте первый пример, если вы используете созданный xml-просмотр

  AlertDialog.Builder myalert = new AlertDialog.Builder(this); myalert.setTitle("Your title"); myalert.setView(content); myalert.setNeutralButton("Close dialog", null); myalert.setCancelable(true); myalert.show(); 

Код для xml … замените шрифт в xml

 <TextView android:id="@+id/yourid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="your content" /> 

Просто используйте следующую строку, чтобы получить идентификатор заголовка диалога:

 int dialogTitle = mCtnx.getResources().getIdentifier( "alertTitle", "id", "android" ); 

Используйте этот для android.support.v7.app.AlertDialog

TextView title = (TextView) alertDialog.findViewById (R.id.alertTitle);

Включите этот макет:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello_World" android:textColorLink="#FF00FF" /> </LinearLayout> 

Затем используйте его внутри Ur Activity

 Dialog dialog = new Dialog(ActivityName.this); dialog.setContentView(R.layout.dialog_name); dialog.setCancelable(true); dialog.findViewById(R.id.text).setTypeface(Typeface.createFromAsset(getAssets(), "font.ttf")); 

Другой путь и это

Попробуйте задать тему для диалога. Измените атрибут шрифта следующим образом:

 <style name="CustomDialog" parent="android:Theme.Dialog"> <item name="android:typeface">serif</item> </style> 

Хотя это изменяет шрифты всех текстовых просмотров в диалоговом окне. Поэтому убедитесь, что TextViews установлены на правильный шрифт

Вы можете изменить появление AlertDialog , следуя этому блоку кода:

 AlertDialog dialog = new AlertDialog.Builder(this).setMessage("Message").show(); TextView textView = (TextView) dialog.findViewById(android.R.id.message); textView.setTextSize(10);//to change font size //to change font family Typeface face = Typeface.createFromAsset(getAssets(),"font/fontFileName.ttf"); textView.setTypeface(face); 

Поместите файл шрифта в папку с ресурсами. В моем случае я создал подкаталог под названием font.

И вы также можете проверить этот вопрос, у которого есть принятый ответ.

Вы можете добавить это

 TextView textViewt = (TextView) alertDialog.findViewById(android.R.id.title); textViewt.setTypeface(your font typeface); 

После линии

 alertDialog.show();