您的位置:首页 > 其它

仿自下向上动画弹出菜单(同时背景窗口变暗/缩小)的实现原理,例小米,苹果等菜单

2014-05-05 13:13 375 查看
简单思路:

1.popup或布局添加位移动画,然后获取其所在window,再设置半透明属性,即可

2.POPUP添加位移动画,整个背景VIEW添加渐变动画使其变,(也可以添加缩小动画,带有层次效果)

参考:

http://104zz.iteye.com/blog/1685425

/article/8117915.html

思路:

1,注意window 的相关设置

<style name="AnimBottom" parent="@android:style/Animation">

<item name="android:windowEnterAnimation">@anim/push_bottom_in</item>

<item name="android:windowExitAnimation">@anim/push_bottom_out</item>

</style>

<style name="MyDialogStyleBottom" parent="android:Theme.Dialog">

<item name="android:windowAnimationStyle">@style/AnimBottom</item>

<item name="android:windowFrame">@null</item>

;!-- 边框 -->

<item name="android:windowIsFloating">true</item>

;!-- 是否浮现在activity之上 -->

<item name="android:windowIsTranslucent">true</item>

;!-- 半透明 -->

<item name="android:windowNoTitle">true</item>

;!-- 无标题 -->

<item name="android:windowBackground">@android:color/transparent</item>

;!-- 背景透明 -->

<item name="android:backgroundDimEnabled">true</item>

;!-- 模糊 -->

</style>

有些是必需的:如浮现,背景色透明,模糊之类

2.添加向上位移和向下位移动画

push_bottom_in.xml

Xml代码


<?xml version="1.0" encoding="utf-8"?>

<!-- 上下滑入式 -->

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="200"

android:fromYDelta="100%p"

android:toYDelta="0"

/>

</set>

push_buttom_out.xml

Xml代码


<?xml version="1.0" encoding="utf-8"?>

<!-- 上下滑出式 -->

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="200"

android:fromYDelta="0"

android:toYDelta="50%p" /> // 这里为什么是50%p?(p表示相对父容器)
by zj 未测试

</set>

3.如果用代码则类似

[html] view
plaincopy

Window window = dialog.getWindow();

//设置显示动画

window.setWindowAnimations(R.style.main_menu_animstyle);

WindowManager.LayoutParams wl = window.getAttributes();

wl.x = 0;

wl.y = getWindowManager().getDefaultDisplay().getHeight();

//设置显示位置

dialog.onWindowAttributesChanged(wl);//设置点击外围解散

注意:dialog的动画都是基于所在window实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: