libgdx中的滑块定制

libgdx中的滑块定制,libgdx,slider,Libgdx,Slider,我正在尝试自定义s滑块。默认滑块与第一个图像中的滑块类似。旋钮/拇指与滑块的高度相同,其最左侧(或右侧)位置仍在滑块中。我想将旋钮x位置自定义为knobImage.x/2。此外,是否可以降低旋钮的y位置?到目前为止,我已经使用了一个非常高和透明的旋钮,旋钮图像在底部。这会产生不同y值的错觉,但这很难维护代码。那么如何在libgdx中定制滑块呢 您可以修改两个可拉丝的填充以调整它们。假设您的纹理区域命名为blueBg和redKnob com.badlogic.gdx.scenes.scene2d.

我正在尝试自定义s滑块。默认滑块与第一个图像中的滑块类似。旋钮/拇指与滑块的高度相同,其最左侧(或右侧)位置仍在滑块中。我想将旋钮x位置自定义为knobImage.x/2。此外,是否可以降低旋钮的y位置?到目前为止,我已经使用了一个非常高和透明的旋钮,旋钮图像在底部。这会产生不同y值的错觉,但这很难维护代码。那么如何在libgdx中定制滑块呢


您可以修改两个可拉丝的填充以调整它们。假设您的纹理区域命名为
blueBg
redKnob

com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable {
    paddedBlueBg: { region: blueBg, leftWidth: -10, rightWidth: -10, bottomHeight: -10},
    paddedRedKnob: { region: redKnob, topHeight: -20 },
},
负填充将允许旋钮伸出边缘。我把-10,但你应该使用你的滑块宽度的一半

对于垂直填充值,可能需要调整两个相反的值以获得所需的值


负片填充使滑块比它在布局中占用的空间大,因此,如果在表格中使用它,您将希望在样式中填充至少与负片填充量相同的单元格。

是否尝试使滑块可绘制并添加一些设置?我没试过那样的方法,但它很管用。我不知道你的意思。你能进一步解释一下吗?哦,我还试着在滑块背景的左右两侧添加一些透明度。非常糟糕的代码,但是经过数千次的重复,我可以让它工作。谢谢你花时间。抱歉,但是我应该把这段代码放在哪里?放在定义皮肤的Json文件中。请务必阅读有关使用Json自定义外观的文档。但是如何以编程方式进行此操作?@Crigges
leftWidth
righwidth
等是TextureRegionRavable对象的公共成员字段,因此您可以在代码中设置它们。在我看来,以编程方式创建皮肤而不是使用JSON是一种巨大的时间浪费。尤其是现在,在LibGDX的最新版本中,JSON皮肤支持级联样式,您不必键入完全限定的类名。当然,如果你的风格不是静态的,也会有例外。尝试过,但没有成功。当在旋钮上使用时,使用
setRightWidth
setLeftWidth
功能无效。当在后台使用时,我仍然不能得到想要的结果。我测试了大量不同的数值。