Pesquisar

terça-feira, 15 de setembro de 2009

Ajuda fútil com progress bar ou outro componente que registre o progresso

Suponha que você tenha um progress bar que vai de UM_VALOR_MIN até UM_VALOR_MAX em unidades inteiras. Agora suponha que você tenha uma LISTA_DE_ARQUIVOS e deseja fazer um processamento(com_cada_um_dos_arquivos). E também quer deixar visível ao usuário esse progresso.
Agora veja o algoritmo mais (f)útil pra isso.

ps: esse é mais um daqueles posts que você pode se arrepender, tanto de ler quanto de escrever no futuro.




LISTA_DE_ARQUIVOS = listFilesAt("/home/myuser/myfolder/movies/")
UM_VALOR_MAX = 100
TOTAL_DE_ITENS =
LISTA_DE_ARQUIVOS .tamanho
QTD_POR_ITEM = UM_VALOR_MAX / TOTAL_DE_ITENS
UM_VALOR_MIN = QTD_POR_ITEM

for (String item : LISTA_DE_ARQUIVOS) {
File file = new File(item)
processar(file)
marcarProgresso(round( UM_VALOR_MIN+ 0.059))
UM_VALOR_MIN+= QTD_POR_ITEM
}

Nenhum comentário: