Geralmente, utilizamos estes ProgressBar's como forma de feedback para o usuário em operações que custam tempo, diminuindo o fator "estressante" do usuário com o aplicativo. Deste jeito, a experiência para com o aplicativo se eleva.
Irei exemplificar um ProgressBar, onde algum processando está sendo feito em background, enquanto este ProgressBar é exibido. Para isto, utilizaremos de uma classe e dois arquivos XML, que serão nossos "shapes" onde será feito uma animação de transposição das imagens.
shape_white.xml:
shape_orange.xml:
Esses dois shapes serão utilizados para termos o efeito de animação visível ao usuário. A única coisa que faremos será a transposição dessas duas imagens pelas ImageViews correspondentes do layout abaixo.
layout.xml:
Com nossos shapes inseridos em seu determinado layout, agora precisamos criar nossa classe responsável por carregar esta view e efetuar a animação de transposição.
ProcessingBar.java:
Lendo o código acima, percebemos que ao instanciarmos o construtor da classe ProcessingBar, os métodos prepareLayout() e startAnimation() são chamados, onde o primeiro é responsável por dar um inflate no layout que definimos acima, depois todas as imagens são instanciadas baseado em suas identificações e um ArrayList com o nome dos arquivos dos shapes (e.g. shape_white , shape_orange) é criado. Já o segundo método é responsável por iniciar a Thread responsável pela animação de transposição das ImageViews, basicamente a cada 300 milisegundos uma mensagem é enviada para nosso Handler, que ao capta-las executa um trecho de código modificando cada imagem das ImageView's baseado no nome dos shapes que estão contidas no ArrayList que criamos no método prepareLayout().
Simples, correto?
O resultado pode ser visto abaixo:
Espero que gostem do resultado.
Nenhum comentário:
Postar um comentário