Estou tentando fazer com que uma caixa de diálogo personalizada apareça como se estivesse deslizando de um modo de exibição de texto. Isso é possível? Não consigo aplicar nenhuma animação à classe de diálogo. Tentei esta linha no construtor, mas não surtiu efeito:
this.getWindow (). setWindowAnimations (R.anim.paranimation);
Nem tenho certeza se a animação está correta, mas poderei ajustá-la assim que ver o que está fazendo. Vou listá-lo abaixo para fins de completude. Não estou procurando ajuda na animação real, apenas no aplicativo para o diálogo.
paranimation.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-200%"
android:toXDelta="0%"
android:fromYDelta="200%"
android:toYDelta="0%"
android:duration="3000"
android:zAdjustment="top">
</translate>
Respostas:
Tenho lutado com a animação Dialog hoje, finalmente consegui funcionar usando estilos, então aqui está um exemplo.
Para começar, a coisa mais importante - eu provavelmente o usei de 5 maneiras diferentes hoje, mas não pude dizer porque ... Se as configurações de animação do seu dispositivo estão definidas para "Sem animações" (Configurações → Tela → Animação) então os diálogos ganharam seja animado, não importa o que você faça!
A seguir está uma versão simplificada do meu styles.xml. Esperançosamente, é autoexplicativo. Deve estar localizado em
res/values
.O
windowEnterAnimation
é uma das minhas animações e está localizado emres\anim
. OwindowExitAnimation
é uma das animações que faz parte do Android SDK.Então, quando eu crio o Diálogo no meu
onCreateDialog(int id)
método de atividades , faço o seguinte.Alternativamente, você pode definir as animações da seguinte maneira, em vez de usar o construtor Dialog que usa um tema.
fonte
Dialog dialog = new Dialog(this, R.style.PauseDialog);
é para API 11, mas isso é geralDialog dialog = new Dialog(Context context);
Eu criei a animação Fade in e Fade Out para Dialogbox usando o código ChrisJD.
Dentro de res / style.xml
Dentro de anim / fadein.xml
Dentro de anim / fadeout.xml
Atividade principal
fonte
Da direita para a esquerda (animação de entrada) e da esquerda para a direita (animação de saída):
styles.xml:
Crie dois arquivos em res / anim /:
translate_right_side.xml:
translate_left_side.xml:
Em seu Fragmento / Atividade:
fonte
Encontro o mesmo problema, mas, enfim resolvo o problema da maneira seguida
fonte
Primeiro, você tem que criar dois recursos de animação em res / anim dir
slide_up.xml
slide_bottom.xml
então você tem que criar um estilo
e adicione esta linha à sua classe
Baseado em http://www.devexchanges.info/2015/10/showing-dialog-with-animation-in-android.html
fonte
Experimente o código abaixo:
Crie o Anim personalizado: res / anim / customer_anim.xml:
fonte