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

以编程方式更改字体时Libgdx外观不更新

林君博
2023-03-14
//start font generator
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/button-font.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameters = new FreeTypeFontGenerator.FreeTypeFontParameter();

//default font (the sizes are arbitrary, since it did not work...)
parameters.size = 10;
BitmapFont defaultFont = generator.generateFont(parameters);

//big font
parameters.size = 100;
BitmapFont bigFont = generator.generateFont(parameters);

并将它们设置为皮肤字体,如下所示:

skin.add("font", defaultFont, BitmapFont.class);
skin.add("big-font", bigFont, BitmapFont.class);

问题是gui(特别是使用“font”字体的TextButton)似乎并不关心我以编程方式做了什么,而是一直使用我在json文件中设置的虚拟字体。

我做错了什么?有没有更好的方法来集成ttf字体和json皮肤解析

提前感谢您的帮助。

共有1个答案

昌山
2023-03-14

按照以下步骤操作:

>

  • 首先,从TTF文件创建字体

    FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/button-font.ttf"));
    FreeTypeFontParameter parameter = new FreeTypeFontParameter();
    parameter.size = 10;
    BitmapFont defaultFont = generator.generateFont(parameter); 
    generator.dispose(); // don't forget to dispose to avoid memory leaks!
    

    使用默认构造函数创建一个空白外观,并将字体添加到外观中。

    Skin skin = new Skin();
    skin.add("font",defaultFont);
    
    skin.addRegion(new TextureAtlas(Gdx.files.internal("mySkin.atlas")));
    
    skin.load(Gdx.files.internal("mySkin.json"));
    
    {
      font: font
    }
    

  •  类似资料:
    • 我创建了一个文本视图网格。它工作,但我想改变字体的文本视图(尝试使用字体awesome)。 通过以下https://developer.xamarin.com/guides/android/user_interface/grid_view/创建的TextView

    • 我使用下面的hack以编程方式更改homeAsupIndicator。 但这在大多数新手机(HTC One、Galaxy S3等)上都不起作用。是否有一种方法可以跨设备统一更改。我只需要在主屏幕上更改它。其他屏幕将具有默认屏幕。因此无法使用样式。xml

    • 问题内容: 使用v7时,我发现无法设置字段值。现在,在我中,我有两个部分。当第一个组件值更改时,第二个值将清除。 在课堂上渲染: 现在,我添加了更改钩子,以及如何更改其他值 问题答案: 您可以使用onChange逻辑并使用redux-form中的操作 根据文档: change(field:String,value:any):函数 更改Redux存储中字段的值。这是绑定动作的创建者,因此不返回任何内

    • 我有一个ms-word文档,其中Helvetica 13.5是段落的主要字体。不幸的是,它没有绑定到文档中任何特定的预定义样式(文本是从网站复制到文档中的)。此外,你会看到嵌入在段落中的几个字斜体和一些词是“信使新”。 我想做的是浏览文档,查找具有单一字体/大小的文本片段。如果文本是Helvetica 13.5,我想把它改为Times New Roman 12。我不想换新的。斜体字应该保持斜体(但

    • 我已经读过一些关于颜色的线程,但所有这些线程都必须通过style.xml进行设置。 现在我用这个来确定颜色。 是否可以不使用XML,例如使用代码来更改SwitchCompat/Checkbox的颜色?

    • 问题内容: 我发现了只在Android N设备上才能复制的真正奇怪的错误。 在浏览我的应用程序时,可以更改语言。这是更改它的代码。 该代码在我的巡回活动(带电话)中效果很好,但是在接下来的所有活动中,所有String资源都是错误的。屏幕旋转将其修复。我该怎么办?我应该以其他方式更改Android N的语言环境还是仅仅是系统错误? PS这是我发现的。第一次启动MainActivity时(在​​我的旅