如何在Android中更改AlertDialog字体样式?

时间:2014-05-11 08:15:22

标签: android alertdialog android-alertdialog typeface

我想通过设置类型面来改变android中的AlertDialog字体样式。

3 个答案:

答案 0 :(得分:0)

将你的typeface.ttf文件放在资产文件夹中,然后使用下面的代码

TextView txtview = new TextView(this);
     txtview.setText("hello world");
     txtview.setTypeface(<typeface.ttf>);

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

答案 1 :(得分:0)

您无法直接使用构建器设置字体。 但是,您可以在创建AlertDialog实例后使用AlertDialog.Builder实例执行此操作。

所以:

  1. 使用AlertDialog实例设置所需的所有标记。
  2. 使用create()方法创建Typeface.createFromAssets(...)实例。
  3. 使用yourCreatedAlertDialog.findViewById( id )
  4. 的自定义字体实例
  5. 使用{{3}}查找要设置样式的视图并应用字体。

答案 2 :(得分:0)

在style.xml中创建自己的样式

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <!--item RadioButton or CheckBox color-->
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">#ffffff</item>
    <!--item text color-->
    <item name="textColorAlertDialogListItem">@android:color/white</item>
    <!--buttons color-->
    <item name="colorAccent">#ffffff</item>
    <!--title and message color-->
    <item name="android:textColorPrimary">@android:color/white</item>
    <!--dialog background-->
    <item name="android:windowBackground">@drawable/back_dialog</item>
    <item name="android:fontFamily">@font/yourfont</item>
</style>

然后在您的AlertDialog.Builder

中使用它
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyDialogTheme);