Libgdx更改图像滚动窗格

时间:2014-04-16 09:50:51

标签: libgdx

我的桌子上有一些点和页码

        BitmapFont fuente = new BitmapFont(
                Gdx.files.internal("data/font/arial.fnt"), false);
        fuente.setColor(Color.WHITE);

        LabelStyle estiloLabel = new LabelStyle(fuente, Color.WHITE);
        numeroPagina = new Label("1",estiloLabel);
        numeroPagina.setAlignment(Align.center);
        numeroPagina.setFontScale(dPantalla.escalaLetra(0.6f));
        contenedor.row().fillX();
        contenedor.add(numeroPagina);

        paginador = new Image[numeroDePaginas];

        for(int i=0;i<numeroDePaginas;i++)
        {
            if(i==0)
            paginador[i]=new Image(skin.getDrawable("pagina-selec"));
            else
            paginador[i]=new Image(skin.getDrawable("pagina-noselec"));

        }
        Table marcaPagina = new Table();
        //tablaEstrellas.defaults().pad(dPantalla.escalaDPI(5));
        for(Image a:paginador)
        {
            marcaPagina.add(a).width(dPantalla.escalaDPI(20)).height(dPantalla.escalaDPI(20)).pad(0,dPantalla.escalaDPI(15),dPantalla.escalaDPI(10),0);
        }
        contenedor.row();       
        contenedor.add(marcaPagina).fill();

当页面改变时,我想改变页码和点。我有这个代码:

    if(aux>auxPagina)
    {
        paginador[0]=new Image(skin.getDrawable("pagina-noselec"));//Gray dot
        pagina++;
        paginador[1]= new Image(skin.getDrawable("pagina-selec"));//Yellow dot
    }
    else if(aux<auxPagina)
    {
        paginador[1]=new Image(skin.getDrawable("pagina-noselec"));//gray dot
        pagina--;
        paginador[0]=new Image(skin.getDrawable("pagina-selec"));//yellow dot
    }
    auxPagina=aux;
    numeroPagina.setText(""+pagina);

但这些点并没有改变。

第一页:

enter image description here

第二页:

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为问题是,您在切换页面时使用new Image 相反,您应该为页面/点(Drawable)存储2个selected s(notSelectedImage[])和Image[] dots。切换页面时,您可以执行以下操作:

dots[currentPage].setDrawable(notSelected);
if (increment)      // Increment or decrement
    currentPage++;
else
    currentPage--;
 dots[currentPage].setDrawable(selected);

这应该有效。请注意,如果可以增加,则需要检查 如果您没有检查是否会收到Exception