【问题标题】:Setting Default fonts for whole app为整个应用设置默认字体
【发布时间】:2014-02-09 09:33:02
【问题描述】:

在我的应用程序中,我没有在我的应用程序中为 textviews 设置字体属性,用于更改 textview 的字体。如果有人在手机上运行该应用程序,则使用的默认字体是为手机设置的字体。我想要我的应用程序我的应用程序中的所有文本视图只有一种字体,即使它在具有不同默认字体的手机上运行。我的默认字体在任何手机上都应该相同。我不想使用自定义 Textview。有没有办法做到这一点?

【问题讨论】:

  • 不是没有自定义 TextView 类...

标签: android fonts


【解决方案1】:

希望不会太晚。

使用这个库: Calligraphy

你需要做的是

1) 将此添加到您的 onCreate() 方法中,然后在项目的 assets/fonts 文件夹中选择您的字体。

CalligraphyConfig.initDefault("fonts/Roboto-Regular.ttf", R.attr.fontPath);

2) 包装活动上下文。

@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(new CalligraphyContextWrapper(newBase));
}

对每个活动都这样做!就是这样。 :)

【讨论】:

  • 我在我的应用程序中使用自定义默认字体,它工作正常,但是我想更改一项活动的字体。我能怎么做?这是我的问题。 stackoverflow.com/questions/31176166/…
  • 评论为每个活动使用它节省了大量时间!谢谢!
  • 书法的默认路径到底是什么?是资产/字体吗?
  • 是的,它是资产/字体。
【解决方案2】:

对于您在项目中声明的所有文本视图,您需要使用 findViewById 在 java 代码中获取 id,并且您需要为每个文本视图设置字体,如下所示

font = Typeface.create("serif", Typeface.NORMAL);
myTextView = (TextView) findViewById(R.id.myTextView);
myTextView.setTypeface(font,Typeface.BOLD);

你需要按照上述方式为项目中的所有文本视图设置字体

【讨论】:

  • 我只想改变一个地方,它应该反映在整个应用程序中。在你的方法中,我必须改变应用程序中的每个地方
  • 是的,扩展应用程序类并将字体变量声明为静态变量现在将字体设置为所有文本视图,只要您想更改字体,只需更改您的应用程序类中反映您所有 texviews 的静态字体变量已设置
  • 目前我有很多我没有设置字体的文本视图,所以我想将默认字体作为一种字体,这样它就不需要手机默认字体。在上述情况下,我必须去每个 tect 视图和设置字体。
  • 那么你需要有一个自定义的textview,你需要替换所有布局中的自定义textview
猜你喜欢
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 2021-10-07
  • 2018-05-21
  • 1970-01-01
  • 2011-03-09
相关资源
最近更新 更多