【问题标题】:Custom Font on AndroidAndroid 上的自定义字体
【发布时间】:2011-08-07 08:10:39
【问题描述】:

我想在 Android 应用中使用自定义字体,但使用自定义字体似乎很痛苦?! 我可以通过将自定义字体添加到每个 TextView -> 大量样板代码来以编程方式设置自定义字体。我可以创建一个新类 CustomTextView 扩展 TextView 并在构造函数中添加 setTypeface -> 不再为属性提供 xml 上下文感知帮助。

还有另一种设置自定义字体的方法吗?按 XML、按样式、按主题?

提前致谢!

附:是否可以通过 XML 设置下划线?

【问题讨论】:

  • 是的,但我没有发现任何有用的东西。与下划线相同。似乎必须以编程方式解决它
  • 在应用程序范围内更改字体真的很痛苦。我正在尝试创建一个样式,它通过继承来更改 TextAppearance 样式的字体值,问题是访问位于 /assets/fonts 下的字体。我不知道如何在我的样式 xml 中访问 ttf 文件。
  • 底层XML通常是通过在包含将分配给TextViews的文本的字符串资源中添加<u>标签来实现的。然而,我遇到了一些使用自定义字体阻止这些标签工作的情况,而使文本(或其中的一部分)下划线的唯一方法是以编程方式使用SpannableStringUnderlineSpan。有关如何使用这些类的示例,请参阅 stackoverflow.com/a/10019093/22904

标签: android user-interface


【解决方案1】:

使用此代码更改字体 textview..

TextView newfont;
newfont=(TextView) findViewById(R.id.textView1);
Typeface font=Typeface.createFromAsset(getAssets(), "fonts/DejaVuSerif-Italic.ttf");
newfont.setTypeface(font);
newfont.setText("This is the new font Text");

从网上下载 DejaVuSerif-Italic.ttf 文件并放入 assets 文件夹中的 fonts 文件夹中。

【讨论】:

  • 你显然没有理解这个问题。
  • 你能帮我吗,就好像我想在“textview”上应用来自外部存储的字体?
【解决方案2】:

您可以在 assets/fonts 下包含自定义字体,然后使用来自

的代码

https://github.com/browep/AndroidCustomFontWidgets/

您可以在 XML 中指定字体,例如

<com.github.browep.customfonts.view.FontableTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="This is in a custom font"
    app:font="MyFont-Bold.otf" />

该代码支持 FontableTextView 和 FontableButton,但如果您需要,它很容易扩展以支持其他小部件类型。

【讨论】:

  • 如何在运行时按活动或片段设置字体?
猜你喜欢
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 2015-06-08
相关资源
最近更新 更多