Funcionamento de uma loading bar que se movimenta

7 respostas
P

Olá, estou tentando fazer uma loading bar animada, então ela almentará o tamanho e se moverá para a direita, vocês ja devem ter visto, só que eu não entendo muito bem a lógica disso tudo, alguém aqui sabe?
Este é o meu resultado por enquanto:

e esta é a parte da barra vale lembrar que a largura dela é de 20 pixels.

vou postar o meu código caso alguém consiga continuar a minha logica e terminar ele =D

//Tamanho máximo da barra int size = 380; //Desenhando o background da barra loadingBackground.drawSprite(50, 50); //Posição inicial da barra int posX = 52; //Carregando a imagem da barra, 20 pixels de largura(width) loadingBar = new Sprite("Loading", 2, "Bar", 20); //Incrementando a variavel offset, é o que faz a barra se mecher offset++; for (int s = posX; s <= size; s += 20) { int barPos = s + offset; //Caso o tamanho final, jutando posição mais o tamanho da barra seja maior que o tamanho máximo if (barPos + loadingBar.Width > size) { int extraSize = (barPos + loadingBar.Width) - size; //Diminui o tamanho da barra para encaixar e não ficar sobrando loadingBar = new Sprite("Loading", 2, "Bar", (loadingBar.Width - extraSize)); } else { loadingBar = new Sprite("Loading", 2, "Bar", 20); } //Checa se a posição inicial da barra é maior que o maximo, se for ele começa denovo if (barPos > size) barPos = 52; //Desenha a barra loadingBar.drawSprite(barPos, 52); //Reinicia o offset caso seja maior que o tamanho da barra if(offset > 19) offset = 0; }
Na verdade o problema é que ele não ta preenchendo o começo :stuck_out_tongue:

Obrigado =D

7 Respostas

P

Ainda não obtive sucesso, alguém tem alguma ideia?

Anime

Oi,

http://download.oracle.com/javase/tutorial/uiswing/components/progress.html

P

Oi anime, mas no meu caso não é um componente, eu estou fazendo ela manualmente e como você pode ver no giff acima, ela é animada alem de mudar seu tamanho dependendo da porcentagem carregada

Anime

E não pode ser um ProgressBar…

Parece que não rs…

Então se eu entendi seu problema é na animação, deve ser o valor de offset…

P

Não, fazer uma barra simples eu faria muito facilmente, uma 20 vezes melhor que a do java componente.
Eu quero esta barra.

Anime

pb600:
Não, fazer uma barra simples eu faria muito facilmente, uma 20 vezes melhor que a do java componente.
Eu quero esta barra.

Ah ta, respondi lá em cima… Ajudaria se postasse o código completo…

P

Para o funcionamento este é o código completo, o drawSprite é para desenhar na tela na posição x , y, e eu expliquei o que significa cada linha, mas para a lógica o que interessa está ai, só isso precisa ser mudado para o funcionamento completo da barra.
Mas caso não esteja claro

loadingBar = new Sprite("Loading", 2, "Bar", 20);

loadingBar é o objeto da imagem, classe Sprite, nome da imagem é loading, o id dela é 2, carregada do arquivo compactado no cache chamado Bar, com o tamanho de 20 pixels de largura.

loadingBar.drawSprite(barPos, 52);

Desenha na tela a imagem de 20 pixels de largura na tela na posição barPos que muda constantemente com o y equivalente a 52

Criado 12 de abril de 2011
Ultima resposta 24 de abr. de 2011
Respostas 7
Participantes 2