当前位置: 首页 > 面试题库 >

默认皮肤LibGDX?

莘聪
2023-03-14
问题内容

我一直在关注以下内容:https :
//code.google.com/p/table-
layout/#Quickstart,
以获得LibGDX中表格的一些简介。我已经尝试了一些按钮。

现在我有这段代码:

Label introLabel = new Label("Skip Intro", skin);
TextField introText = new TextField("", skin);

table.add(introLabel);
table.add(introText).width(100);
table.row();

但这引发了一个NullPointerException原因:No com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle registered with name: default

我只将按钮(从屏幕上的其他位置)添加到皮肤中:

atlas = new TextureAtlas("assets/gui/buttons/alpha_generic_buttons.pack");

skin = new Skin();
skin.addRegions(atlas);

我的问题现在是桌子需要什么样的纹理,最重要的是,如何在桌子上使用它们?


问题答案:

当谈到libGDX中的UI时,您会发现它与以前使用的(yaml,json,xml,UI Builders等)非常不同。

表布局 -这是Scene2d UI的结构和格式。您提供的链接是一个很棒的教程,但是当您意识到时,需要皮肤来完成大多数事情。

LibGDX皮肤
-包括3件事,一个纹理包图像,一个纹理包文件和一个用于设置样式的Json。您也可以像您一样以编程方式生成它们,但是我发现,简单地从文件中加载它们并使用它们要容易得多。如果您想了解有关如何制作或编辑皮肤的更多信息,请点击此链接:皮肤。

现在,回到您得到的异常。这是因为您创建的外观没有用于描述各种UI元素样式的json。在上述异常的情况下,文本字段内的标签没有默认样式。

您可以简单地使用tests文件夹中提供的模板:

  1. Atlaspack文件
  2. 杰森文件
  3. Atlaspack图片
  4. 字体图片
  5. 字体文件

将这些文件放在android项目的资产文件夹中。然后,您可以使用一行代码轻松加载此皮肤:

Skin uiSkin = new Skin(Gdx.files.internal("uiskin.json"));

这将缺少制作TextField对象的信息,以及一堆其他默认样式:

com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
    default: { font: default-font, fontColor: white },
}

希望这可以帮助您入门。还有许多其他小事情,因此不要害怕查看Wiki
上的Scene2d.UI文章以了解更多信息。

注意: 您可以使用gdx- tools工件来立即使用默认的UI外观(当您急于使UI可见时,它对于非常小的/简单的应用程序,调试非常有用。等)。



 类似资料:
  • 尝试从LibGDX的测试加载默认外观时 https://github.com/libgdx/libgdx/tree/master/tests/gdx-tests-android/assets/data(uiskin.atlas、uiskin.json、uiskin.png和default.fnt) 我得到以下错误。 以下是我如何加载和使用皮肤: 看起来它找不到这个: 但是,这一行存在于uiskin

  • 我注意到,当我在JVM 7和JVM 8上运行JavaFX应用程序时,我得到了不同的默认外观。如何将每个JVM上的默认皮肤设置为相同?

  • 皮肤 皮肤机制为 moye 控件提供强大的样式自定义能力,可以支持 自定义样式 与 换肤 / 风格主题 。 功能特点: 首先,每个控件都有一个基础样式类型: ui-{type},其中{type}表示控件的主类型; 其次,控件可以设定皮肤参数,并可以指定多个皮肤。每个皮肤设定都会添加两个样式类型: skin-{skin} 与 skin-{skin}-{type}, 其中 {skin} 表示设定的皮肤

  • 对于一般的安装不推荐使用皮肤,因为此插件的最大缺点是容量大了,单单个DLL就4.02MB,而且还要附加.skf作为插件调用的皮肤!假如安装包大小过500MB或以上的使用也不错,至少能漂亮一些! 压缩包内有几个皮肤以及插件与说明,还有示例脚本,一看则明! 引用sample.nsi示例脚本: ;NSIS_SkinCrafter_Plugin ;Basic Example Script Functi

  • 动态更改导航条和字体颜色,用于实现app换肤功能。 作者说:模仿QQ的换肤,实现方式很初级.仅供参考学习吧. [Code4App.com]

  • 该悬浮QQ在线客服插件一款很实用的功能,基本每个企业网站都需要,能及时解决网站访客的提问,转化成企业的客户 。 提供6种不同颜色的皮肤以及2个完全不同风格的皮肤给用户选择。解决了之前第一版本在Chrome浏览器中,点击收缩时悬浮窗口不显示的BUG。另外,还增加了几个参数,让该插件的在应对更多需求时更具灵活性。 需要引用的文件: 1、CSS 2、jQuery 3、jQuery的调用 $(window