Estou tendo problemas com uma apresentação de slides que estou criando.
Criei 2 animações em xml para fade in e fade out:
fadein.xml
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="2000"/>
</set>
fadeout.xml
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="2000"/>
</set>
O que estou tentando fazer é mudar as imagens de um ImageView usando o efeito fade, de modo que a imagem exibida no momento desapareça e outra apareça. Considerando que já tenho uma imagem definida, posso fazer o fadeout desta imagem sem problema, com este:
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
imageView.startAnimation(fadeoutAnim);
Mas então, eu defino a próxima imagem a ser exibida:
imageView.setImageBitmap(secondImage);
Ele apenas aparece no imageView, e quando eu defino a animação, ele esconde a imagem, o fade in ... Existe alguma maneira de corrigir isso, quero dizer, quando eu faço imageView.setImageBitmap (secondImage); comando, a imagem não aparece imediatamente, e apenas quando o fade na animação é executado?
Eu queria atingir o mesmo objetivo que você, então escrevi o método a seguir que faz exatamente isso se você passar um ImageView e uma lista de referências para drawables de imagem.
fonte
Você já pensou em usar TransitionDrawable em vez de animações personalizadas? https://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html
Uma maneira de conseguir o que você está procurando é:
fonte
Usei animação fadeIn para substituir a nova imagem pela antiga
fonte
Com base na solução de Aladin Q, aqui está uma função auxiliar que escrevi, que mudará a imagem em uma visualização de imagem enquanto executa um pequeno fade out / fade na animação:
fonte
você pode fazer isso por dois pontos simples e mudança em seu código
1. Em seu xml na pasta anim de seu projeto, defina o tempo de duração de fade in e fade out não igual
2. Em sua classe java antes do início da animação de fade out, defina a segunda visibilidade da imagem, depois de iniciada a animação de fade out, defina a visibilidade da segunda imagem, que você deseja que fique visível
fadeout.xml
fadein.xml
Em sua aula de java
fonte
Para Fade In e Out infinito
fonte
Estou usando esse tipo de rotina para encadear animações programaticamente.
fonte
A melhor e mais fácil maneira, para mim, foi esta ..
-> Simplesmente crie um tópico com Handler contendo sleep ().
fonte
Esta é provavelmente a melhor solução que você encontrará. Simples e fácil. Eu aprendi no udemy. Suponha que você tenha duas imagens com id1 e id2 de imagem respectivamente e atualmente a visualização da imagem é definida como id1 e você deseja alterá-la para a outra imagem toda vez que alguém clicar. Portanto, este é o código básico em
MainActivity.java
ArquivoEspero que isso certamente ajude
fonte