本文主要是介绍Android popupwindow动画的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
要实现背景虚化的对话框,有三种方式:PopupWindow,DialogFragment 和 Activity。现在先说说PopuWindow的出现和消失的动画设置。
文章参考:Android之Animation动画的使用(一)
PopupWindow的进入效果和退出效果,用到style样式。PopupWindow中没有setAnimation方法,只能通过popWindow.setAnimationStyle(R.style.showPopupAnimation)来设置。比如,设置弹出框显示后需要消失,这个设置动画直接是使用xml文件,不需要代码的,这里以透明效果为例,当然做复合效果也行:
首先,anim文件夹下的代码:alpha_in.xml
- <?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <alpha android:duration="1000" >
-
- android:fromAlpha="0.0"
-
- android:toAlpha="1.0"
- />
- </alpha>
- </set>
alpha_exit.xml
- <?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android" >
- <alpha
- android:duration="1000"
- android:fromAlpha="1.0"
- android:toAlpha="0.0" />
-
- </set>
上面的两段代码分别是进入和退出的动画效果。
其次,【注意】最重要的是在values文件夹下的styles.xml中进行配置:
![](https://img-blog.csdn.net/20150223171414234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY4NzM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
配置的代码为:添加下面一段代码即可:
- <style name="showPopupAnimation" parent="android:Animation">
- <item name="android:windowExitAnimation">@anim/alpha_exit</item>
- <item name="android:windowEnterAnimation">@anim/alpha_in</item><!--- 进入动画->
- </style>
最后,再调用这个style即可
- public void pop(){
- View view = getLayoutInflater().inflate(R.layout.view, null);
- PopupWindow popWindow = new PopupWindow(view, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, true);
- popWindow.setOutsideTouchable(true);
- popWindow.setBackgroundDrawable(new BitmapDrawable());
- popWindow.setAnimationStyle(R.style.showPopupAnimation);
- popWindow.showAtLocation(view, Gravity.CENTER, 0, 0);
- }
这篇关于Android popupwindow动画的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!