Próbuję wyświetlić niestandardowe okno dialogowe tak, jakby zsuwało się z widoku tekstu. czy to możliwe? Nie mogę zastosować żadnej animacji do klasy dialogowej. Wypróbowałem tę linię w konstruktorze, ale to nie daje efektu:
this.getWindow (). setWindowAnimations (R.anim.paranimation);
Nie jestem nawet pewien, czy animacja jest poprawna, ale będę w stanie ją dostosować, gdy zobaczę, co robi. Dla kompletności podam to poniżej. Nie szukam pomocy przy samej animacji, tylko aplikacja do okna dialogowego.
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>
Odpowiedzi:
Zmagałem się dzisiaj z animacją Dialog, w końcu udało mi się ją uruchomić przy użyciu stylów, więc oto przykład.
Na początek najważniejsza rzecz - prawdopodobnie miałem to dzisiaj działające na 5 różnych sposobów, ale nie mogłem powiedzieć, ponieważ ... Jeśli ustawienia animacji twojego urządzenia są ustawione na "Brak animacji" (Ustawienia → Wyświetlacz → Animacja), wtedy okna dialogowe wygrały nie bądź animowany bez względu na to, co robisz!
Poniżej znajduje się uproszczona wersja pliku my styles.xml. Mam nadzieję, że jest to oczywiste. Powinien znajdować się w
res/values
.Jest
windowEnterAnimation
to jedna z moich animacji i znajduje się wres\anim
. JestwindowExitAnimation
to jedna z animacji, która jest częścią zestawu Android SDK.Następnie, kiedy tworzę okno dialogowe w
onCreateDialog(int id)
metodzie moich działań , wykonuję następujące czynności.Alternatywnie możesz ustawić animacje w następujący sposób, zamiast używać konstruktora Dialog, który pobiera motyw.
źródło
Dialog dialog = new Dialog(this, R.style.PauseDialog);
to jest dla API 11, ale to jest ogólneDialog dialog = new Dialog(Context context);
Stworzyłem animację pojawiania się i zanikania dla Dialogbox przy użyciu kodu ChrisJD.
Wewnątrz res / style.xml
Wewnątrz anim / fadein.xml
Wewnątrz anim / fadeout.xml
Główna aktywność
źródło
Od prawej do lewej (animacja wejścia) i od lewej do prawej (animacja wyjścia):
styles.xml:
Utwórz dwa pliki w res / anim /:
translate_right_side.xml:
translate_left_side.xml:
W Tobie Fragment / Aktywność:
źródło
Napotykam ten sam problem, ale w końcu rozwiązuję go w następujący sposób
źródło
Najpierw musisz stworzyć dwa zasoby animacji w katalogu res / anim
slide_up.xml
slide_bottom.xml
wtedy musisz stworzyć styl
i dodaj tę linię do swojej klasy
Na podstawie http://www.devexchanges.info/2015/10/showing-dialog-with-animation-in-android.html
źródło
Wypróbuj poniższy kod:
Utwórz animację niestandardową .: res / anim / customer_anim.xml:
źródło