美文网首页
Dialog 出现消失动画和位置

Dialog 出现消失动画和位置

作者: 一路摇到顶 | 来源:发表于2016-09-05 23:03 被阅读2285次

Dialog 的动画

拿到Dialog的实例,dialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation;完成动画的设置。
style

<style name="PauseDialogAnimation">    
<item name="android:windowEnterAnimation">@anim/grow_in</item>    <item name="android:windowExitAnimation">@anim/grow_out</item></style>

缩放+透明度
@anim/grow_in

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">    <scale        android:duration="@android:integer/config_shortAnimTime"        android:fromXScale="1.0"        
android:fromYScale="1.0"        
android:pivotX="50%"        
android:pivotY="0%"       
android:toXScale="0.3"        
android:toYScale="0.3" />    
<alpha        android:duration="@android:integer/config_shortAnimTime"        android:fromAlpha="1.0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toAlpha="0.0" />
</set>

@anim/grow_out

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <scale        android:duration="@android:integer/config_shortAnimTime"        android:fromXScale="0.3"        android:fromYScale="0.3"        android:pivotX="50%"        android:pivotY="100%"        android:toXScale="1.0"        android:toYScale="1.0" />    <alpha        android:duration="@android:integer/config_shortAnimTime"        android:fromAlpha="0.0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toAlpha="1.0" /></set>

从上到下
IN

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromYDelta="-100%p"    android:fromXDelta="0"    android:duration="500"></translate>

OUT

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:toYDelta="100%p" android:toXDelta="0"    android:duration="500"></translate>

从左到右
in

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXDelta="-100%p"    android:fromYDelta="0"    android:duration="500"></translate>

out

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:toXDelta="100%p" android:toYDelta="0"    android:duration="500"></translate>

Dialog 的显示位置。

显示位置有Window window = dialog.getWindow();window.setGravity(Gravity.BOTTOM|Gravity.LEFT);
下左,,和Framelayout是一样的定位方式。

dialog有两个回调函数,setOnShowListenersetOnDismissListener,可以通过这两个函数还显示和消失的时候,对dialog中的view,进行动画。更富有动感。

相关文章

网友评论

      本文标题:Dialog 出现消失动画和位置

      本文链接:https://www.haomeiwen.com/subject/swxdettx.html