在屏幕上绘制后更改特定图像样式

时间:2015-04-18 14:06:48

标签: java android libgdx

我正在LibGDX应用中构建一个小菜单。 我有一些按钮,我从相同的资源中绘制,并在它们上面放置不同的图像标签。 在我创建按钮之后,我正在寻找更新它们的方法。

我在循环中运行了10次,创建ImageButtom并将其添加为Actor

for (int i=0; i<10; i++ ) {

        ImageButtonStyle style = new ImageButtonStyle() ;
        style.up = skin.getDrawable(i);
        style.down = skin.getDrawable(i);
        ImageButton image = new ImageButton(styleButton);
        addActor(image);     
        }

因此我有10个按钮,上面有不同的图像标签。 当我有一个更新按钮图像的事件时(从禁用/启用/按下更改..) 我没有办法获取X图像并对其进行更改,因为我添加的图像没有任何TAG或任何id

我可以再次绘制它,删除所有并再次在循环中绘制它,但我认为它不是实现它的最佳方式。

我正在寻找管理它的方法......

2 个答案:

答案 0 :(得分:0)

如果我理解你想要什么,或者这是否是最有效的方式,但我碰巧读到了你的问题,那就不是了。

for (int i=0; i<10; i++ ) {

    ImageButtonStyle style = new ImageButtonStyle() ;
    style.up               = skin.getDrawable(i);
    style.down             = skin.getDrawable(i);
    ImageButton image      = new ImageButton(styleButton);

    image.setName("styleNumber"+i); // or use Integer.toString(i);

    addActor(image);     
    }

private void testStageActorByName(String name) {

    String tempName = name; //-> e.g: "styleNumber1"

    for (int a = 0; a < yourStage.size; a++) {
        if (yourStage.get(a).getName().equals(tempName)) {

        //what you want to do, change something in that actor "styleNumber1"
            yourStage.get(a)...
        }
    }
}

答案 1 :(得分:0)

将图像保存在数组或其他结构中:

import com.badlogic.gdx.utils.Array;

Array<ImageButton> myImageButtons = new Array<ImageButton>(10);


for (int i=0; i<10; i++ ) {
        ImageButtonStyle style = new ImageButtonStyle() ;
        style.up = skin.getDrawable(i);
        style.down = skin.getDrawable(i);
        ImageButton image = new ImageButton(styleButton);
        addActor(image);     

        myImageButtons.add(image);
}

然后你可以稍后再查看:

void ImageButton getButtonImage(int i) {
    return myImageButtons.get(i);
}