- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 JSON 设置 UI 的样式。
在本教程中:http://www.gamefromscratch.com/post/2013/12/18/LibGDX-Tutorial-9-Scene2D-Part-3-UI-Skins.aspxuiskin.json 对我不起作用。我删除了所有不需要的其他样式,这是我实际的皮肤代码:
uiskin.json:
{
com.badlogic.gdx.graphics.g2d.BitmapFont: {
default-font: {
file: AlanDen50.fnt
}
},
com.badlogic.gdx.graphics.Color: {
green: {
a: 1,
b: 0,
g: 1,
r: 0
},
blue: {
a: 1,
b: 1,
g: 0,
r: 0
},
white: {
a: 1,
b: 1,
g: 1,
r: 1
},
red: {
a: 1,
b: 0,
g: 0,
r: 1
},
black: {
a: 1,
b: 0,
g: 0,
r: 0
}
},
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
default: {
font: default-font,
fontColor: blue,
downFontColor: red
}
},
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
default: {
font: default-font,
fontColor: blue
}
},
com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: {
default: {
selection: selection,
font: default-font,
fontColor: blue,
cursor: cursor
}
}
}
这是 PlayScreen.java:
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
TextField inpName = new TextField("Nome", skin);
inpName.setBounds(300, 200, 200, 40);
我得到的错误是:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error reading file: data/uiskin.json
at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:96)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:73)
at com.me.dunbar.MenuScreen.show(MenuScreen.java:43)
at com.badlogic.gdx.Game.setScreen(Game.java:62)
at com.me.dunbar.DunBarGame.switchScreen(DunBarGame.java:32)
at com.me.dunbar.DunBarGame.create(DunBarGame.java:16)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: com.badlogic.gdx.utils.SerializationException: Error reading file: data/uiskin.json
at com.badlogic.gdx.utils.Json.fromJson(Json.java:658)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:94)
... 7 more
Caused by: com.badlogic.gdx.utils.SerializationException: Serialization trace:
selection (com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle)
at com.badlogic.gdx.utils.Json.readFields(Json.java:758)
at com.badlogic.gdx.utils.Json.readValue(Json.java:861)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:411)
at com.badlogic.gdx.utils.Json.readValue(Json.java:805)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.readNamedObjects(Skin.java:432)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:421)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:417)
at com.badlogic.gdx.utils.Json.readValue(Json.java:835)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:411)
at com.badlogic.gdx.utils.Json.fromJson(Json.java:656)
... 8 more
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: No Drawable, NinePatch, TextureRegion, Texture, or Sprite registered with name: selection
at com.badlogic.gdx.scenes.scene2d.ui.Skin.getDrawable(Skin.java:284)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.get(Skin.java:132)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:410)
at com.badlogic.gdx.utils.Json.readFields(Json.java:751)
... 17 more
现在,如果我从 json 中删除“选择”和“光标”,应用程序会运行,但我看不到任何文本字段!
我正在使用 gdx nightly build(2013 年 12 月 22 日),但即使在 0.9.9 稳定版中也无法正常工作。
最佳答案
出现此错误是因为您尚未注册名为selection
的纹理。 TextFieldStyle
需要 selection
字段来保存用户选择某些文本时应绘制的纹理。
要注册这样的纹理,只需这样做:
skin.addRegions(someAtlasTexture)
显然,图集应该包含这样的区域。另外,您应该定义 TextFieldStyle
的 background
字段(通常是 9 block 区域)以查看文本字段角。
关于java - 没有以名称 : selection in json user skin? 注册的 Drawable、NinePatch、TextureRegion、Texture 或 Sprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20735000/
我正在使用 libgdx AssetManager 加载具有自定义字体的皮肤。 当我调用 assetmanager.dispose() 时,它会抛出异常: com.badlogic.gdx.utils
我的SDK工具到24.2版和带有 Android 4.4W.2 (API 20) 的 SDK。 我使用 Android 虚拟设备 (AVD) 来模拟 Android 穿戴设备。但是出现错误“皮肤目录没
在 Android Studio(Arctic Fox | 2020.3.1 Patch 1)中,模拟器中新虚拟设备的初始创建和后续启动均顺利完成,并且设备框架正确显示。 However, when
如果我在 web.xml 中使用 myskin 而不是 blueSky,则有两个 css 文件未加载(skinning.css 和 packed.css),我的日志显示: 1. WARNING JS
我正在使用共享内存(POSIX)来共享文件指针(FILE * rt_file),但它没有在客户端获取文件指针。如有任何建议,请。 /* * shm_msgserver.c * * Illustr
我用这段代码来为我的整个网站设计皮肤。 .mainpage { width:85%; height: 100vh; margin:auto; position: relative;
我需要一个自定义日期选择器,本质上只是想删除 IOS 版本中的图形但保留 3 列日期滚动条。是否需要从头开始重建(所有研究都表明是),或者是否可以仅禁用或交换图像。 最佳答案 我自己还没有尝试过,但也
我试图从我的 Controller 向 https://test.adyen.com/hpp/select.shtml 发出发布请求,但我继续收到此错误 Error: Skin null does n
我使用的是 fancybox version: 2.1.3 我想做的是: 将宽度和高度设置为固定的 600px x 400px。 如果图片小于弹出框,请将其居中,不要调整大小。 现在这是我当前的设置:
我想在我的应用程序中做一些动画。我有一颗小行星,当他向右移动时,动画会向右移动,当他向左移动时,动画会向左移动,角度在 0 到 360° 之间。我已经为你添加了瓷砖,向我解释如何完美地切割它。我在类里
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: No com.badlogic.
看到很多关于Failed to allocate memory的问题:8一般建议是将内存从 1024 MB 减少到 512MB 其他帖子 Failed to allocate memory: 8 An
我正在使用 ADF skin.css 来创建自定义网页。我在 skin.css 上做的很多定制似乎没有适本地反射(reflect)在页面上。例如,当我尝试将渐变效果应用于面板拉伸(stretch)布局
我正在寻找一种直接在桌面上绘制动画的方法。无窗框,背景透明。 我在 Windows XP 中使用 Python,但它不一定是跨平台的,尽管它会是一个很好的奖励。 有人知道可以执行此操作的 python
我正在开发一个 DNN 模块,我想在我的 ContentPane 顶部显示一条信息消息,而不是在实际模块上方。我发现 DotNetNuke.UI.Skins.Skin.AddPageMessage
本文实例讲述了Android使用Eclipse 打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素的解决方法。分享给大家供大家参考,具体如下: 今天打开 Eclipse 时遇
我试图渲染我在 3dsmax 中制作的原始角色,但似乎我导出的 DAE 文件有问题,或者只是 ColladaLoader 无法正确处理它。 场景由动画两足动物骨骼、使用 Physique 修改器的简单
我试图渲染我在 3dsmax 中制作的原始角色,但似乎我导出的 DAE 文件有问题,或者只是 ColladaLoader 无法正确处理它。 场景由动画两足动物骨骼、使用 Physique 修改器的简单
我使用 uiskin.png、uiskin.atlas、uiskin.json 和 default.fnt 作为此链接提供的后续代码的资源。 https://github.com/libgdx/lib
有没有办法本地化 .skin 文件(asp.net 主题)中的文本? 谢谢 最佳答案 不。本地化文本来自资源文件。皮肤文件与外观有关,而不是内容。 关于asp.net - ASP 主题 : Skin
我是一名优秀的程序员,十分优秀!