我的桌子上有一些点和页码
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);
但这些点并没有改变。
第一页:
第二页:
答案 0 :(得分:0)
我认为问题是,您在切换页面时使用new Image
相反,您应该为页面/点(Drawable
)存储2个selected
s(notSelected
,Image[]
)和Image[] dots
。切换页面时,您可以执行以下操作:
dots[currentPage].setDrawable(notSelected);
if (increment) // Increment or decrement
currentPage++;
else
currentPage--;
dots[currentPage].setDrawable(selected);
这应该有效。请注意,如果可以增加,则需要检查
如果您没有检查是否会收到Exception
。