Eu tenho três atividades cujos modos de inicialização são de instância única.
Usando onfling()
, eu balanço-os para a esquerda e direita.
O problema é que quando deslizo para a direita para a esquerda, a transição do slide está correta, mas quando deslizo para a esquerda para a direita, recebo a transição de deslizar da direita para a esquerda.
Eu sei por que isso está acontecendo porque estou sempre enviando novas intenções. Mas agora preciso alterar a animação de deslizar da esquerda para a direita.
Eu sei que existe um método chamado overridingTransitionPending()
, mas não sei como definir minha animação em XML.
Respostas:
Use este xml em
res/anim/
Isto é para animação da esquerda para a direita:
Isto é para animação da direita para a esquerda:
Na sua codificação, use a intenção como da esquerda para a direita:
Na sua codificação, use a intenção como da direita para a esquerda
fonte
Se você deseja que a transição funcione para todo o aplicativo, é possível criar
rootacivity
e herdá-lo na atividade necessária. Na chamada onCreate da atividade raiz,overridePendingTransition
com a direção desejada. EonStart
ligueoverridePendingTransition
com outra direção se a atividade for retomada. Aqui estou dando código de execução completo abaixo. Corrija-me se estiver errado.crie esse arquivo xml na sua pasta anim
anim_slide_in_left.xml
anim_slide_in_right.xml
anim_slide_out_left.xml
anim_slide_out_right.xml
RootActivity
FirstActivity
SecondActivity
ThirdActivity
e finalmente manifesto
fonte
Criou um código de exemplo implementando o mesmo com efeitos de slide da esquerda, direita, superior e inferior. (Para aqueles que não querem criar todos os arquivos xml anim :))
Confira o código no github
fonte
Use esse estilo conforme definido abaixo.
apareça - faça com que apareça.xml
===========================================
faça com que desapareça lentamente em view.xml
==========================================
fadeout - faça desaparecer lentamente de view.xml
==========================================
push_down_in.xml
==========================================
push_down_out.xml
==========================================
push_left_in.xml
==========================================
push_left_out.xml
==========================================
push_right_in.xml
==========================================
push_right_out.xml
==========================================
push_up_in.xml
==========================================
push_up_out.xml
==========================================
rotation.xml
==========================================
scale_from_corner.xml
==========================================
scale_torwards_corner.xml
==========================================
shrink_and_rotate_a (exit) .xml
==========================================
shrink_and_rotate_b (entry) .xml
========================================
blink.xml
========================================
ZoomIn.xml
========================================
ZoomOut.xml
========================================
FadeIn.xml
========================================
FadeOut.xml
========================================
Move.xml
========================================
SlideDown.xml
========================================
SlideUp.xml
========================================
Bounce.xml
fonte
Você pode substituir sua animação de atividade padrão. Aqui está a solução que eu uso:
Crie um "CustomActivityAnimation" e adicione-o ao seu tema base por "windowAnimationStyle".
Crie uma pasta anim na pasta res e crie esses quatro arquivos de animação:
slide_in_right.xml
slide_out_left.xml
slide_in_left.xml
slide_out_right.xml
Este é meu projeto de amostra no github.
Isso é tudo ... Feliz codificação :)
fonte
Além disso, você pode fazer isso:
E você não precisa adicionar nenhum XML de animação
fonte
Não consegui encontrar nenhuma solução para esse tipo de animação usando o ViewPropertyAnimator.
Aqui está um exemplo:
Layout:
Animar - da direita para a esquerda e sair da visualização:
Animar - da direita para a esquerda, entre na visualização:
fonte
Se o seu nível de API for maior de 19 anos, você poderá usar
translation
como acima. Se o seu nível de API for menor que 19, você pode dar uma olhada no tutorial semelhante: http://trickyandroid.com/fragments-translate-animation/fonte
Para da direita para a esquerda slide
res / anim / in.xml:
res / anim / out.xml:
no arquivo Java de Atividade:
você pode alterar os tempos de duração nos arquivos xml para a animação de slide mais longa ou mais curta.
fonte