为了使我的问题更清楚,我创建了一个简单的测试类,如下所示。
`public void create () {
stage = new Stage();
// GP
Texture texture1 = new Texture(Gdx.files.internal("data/badlogic.jpg"));
TextureRegion tr = new TextureRegion(texture1);
Image image = new Image(tr);
Group gp = new Group();
ImageButton ib = new ImageButton(new Image(tr).getDrawable());
ib.setSize(90, 256);
gp.addActor(ib);
gp.setPosition(0, 0);
stage.addActor(gp);
gp.debugAll();
}`
badlogic徽标的大小为256 * 256。我在测试中将其设置为90 * 256.但结果如下http://imgsrc.baidu.com/forum/w%3D580/sign=fb0e4402d21373f0f53f6f97940e4b8b/0958c32397dda1448779b0cbb1b7d0a20df486e2.jpg 如果我在将图像大小发送到图像按钮之前设置图像大小,那么它将呈现为256 * 256,即完整的原始大小。这个功能很简单。我无法弄清楚哪里出了问题。
答案 0 :(得分:0)
首先,Libgdx项目的上次更新是1.4.1:http://libgdx.badlogicgames.com/download.html
问题是您要发送到ImageButton的Drawable对象,如果要在将图像或纹理添加到ImageButton之前更改图像或纹理的大小(这样您将解决问题),您将只需要使用.setBounds()
方法
我写下了一个小例子:
<强> 1。使用图像文件初始化Image对象:
`Image image = new Image( new Texture ( Gdx.Files.internal("yourPathFile.png") ) );`
<强> 2。 .setBounds()javadoc :( x坐标,y坐标,图像宽度,图像高度)
image.setBounds(0f, 0f, 50f, 60f)
这就是全部。
这里有一些来自Libgdx官方javadoc的ImageButton对象的构造函数。
另见: