当前位置: 首页 > 知识库问答 >
问题:

更改整个应用程序的字体[复制]

端木望
2023-03-14

我想在我的应用程序中使用自定义字体。这是为整个应用程序提供字体的最佳方式。我知道如何将自定义字体分配给单个文本视图或按钮。

是否可以在一个地方提到自定义字体,例如在样式中。xml,字体将应用于整个应用程序(每个文本视图、按钮、编辑文本等)。

共有2个答案

梁学真
2023-03-14

不幸的是,android没有提供任何方法来在一个地方为整个应用程序应用自定义字体。

但是,您可以创建自定义文本视图扩展文本视图和自定义按钮扩展按钮。这样,您可以通过创建字体实例来设置字体。

陈马鲁
2023-03-14

在您的应用程序中使用这种类型的文本视图

public class MyTextView extends TextView {

public MyTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
}

public MyTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

public MyTextView(Context context) {
    super(context);
    init();
}

public void init() {
    Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "font/chiller.ttf");
    setTypeface(tf ,1);

}

}

同时编辑文本

public class CEditText extends EditText {


private Context context;
private AttributeSet attrs;
private int defStyle;

public CEditText(Context context) {
    super(context);
    this.context=context;
    init();
} 

 public CEditText(Context context, AttributeSet attrs) {
      super(context, attrs);
      this.context=context;
      this.attrs=attrs;
      init();
 }

public CEditText(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
      this.context=context;
      this.attrs=attrs;
      this.defStyle=defStyle;
      init();
}

private void init() {
      Typeface font=Typeface.createFromAsset(getContext().getAssets(), "fonts/myfont.ttf");
      this.setTypeface(font);
}
@Override
public void setTypeface(Typeface tf, int style) {
    tf=Typeface.createFromAsset(getContext().getAssets(), "fonts/myfont.ttf");
    super.setTypeface(tf, style);
}

@Override
public void setTypeface(Typeface tf) {
    tf=Typeface.createFromAsset(getContext().getAssets(), "fonts/myfont.ttf");
    super.setTypeface(tf);
}
 类似资料:
  • 我有一个应用程序,我想改变整个应用程序中的文本字体。< br >是否有办法以编程方式或使用清单中的xml来更改应用程序的字体。?

  • 问题内容: 我已经申请了秋千。现在,我想更改整个Swing应用程序的Font,以便添加的任何组件都应仅遵循该Font。有什么办法可以达到相同的目的吗? 问题答案:

  • 我想更改整个应用程序组件(文本视图、编辑文本、按钮等)的字体。我发现我可以为应用程序设置样式,但在这里我无法将字体从资产文件夹放入自定义样式xml。我必须将我的自定义TTF字体从资产文件夹放到样式xml中的typeface元素中。我无法将单空间字体更改为自定义字体。我的风格是

  • 我编写了一个程序,将其导出为“.jar”,并在开发人员台式电脑以外的计算机上运行它。问题是笔记本电脑上的整个JFrame都变小了,因此某些文本被替换为“...”因为组件太小,无法完全显示。现在出现了一个问题,是否有可能动态地改变我的文本大小,它总是完全显示? 编辑1:我的问题是,我首先必须得到我的文本被替换为“...”时的字体大小。

  • 问题内容: 我知道,只需在屏幕上设置元素的自定义字体即可。 我想知道如何使用swift为整个应用程序设置它。(破解将是针对应用程序的每个元素执行我所知道的操作,但这只会成为可维护性的噩梦) 我看到这个问题已经用Objective-C标签问过,如何在不指定大小的情况下为整个iOS应用设置自定义字体,但我对Objective-C不够熟悉,不足以将代码移植到Swift 问题答案: 您可以设置UILabe

  • 本文向大家介绍StackExchange.Redis 在整个应用程序中复用复用器,包括了StackExchange.Redis 在整个应用程序中复用复用器的使用技巧和注意事项,需要的朋友参考一下 示例