仿自下向上动画弹出菜单(同时背景窗口变暗/缩小)的实现原理,例小米,苹果等菜单
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实现
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实现
相关文章推荐
- Android开发,仿苹果的弹出窗口界面、以及窗口动画效果、窗口圆角实现。
- JS+CSS实现Div弹出窗口同时背景变暗的方法
- JS+CSS实现Div弹出窗口同时背景变暗的方法
- javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
- javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
- JS+CSS实现Div弹出窗口同时背景变暗的方法
- JS实现点击登录弹出窗口同时背景色渐变动画效果
- JS实现点击登录弹出窗口同时背景色渐变动画效果
- 点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
- iOS 弹性动画之弹出分享菜单的实现
- android Activity实现从底部弹出或滑出选择菜单或窗口
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
- jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
- js实现仿网易点击弹出提示同时背景变暗效果
- 编写纯 CSS 弹出菜单的原理及实现 By shawl.qiu
- android中使用PopupWindow实现弹出窗口菜单
- JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
- 编写纯 CSS 弹出菜单的原理及实现 By shawl.qiu
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口