首页 > 代码库 > 让 Popwindow 向上弹出

让 Popwindow 向上弹出

 

 1 /** 2      * 获取父控件的位置y-popwindow的高度 = 应该显示的y坐标.   x这里设置为center 不刻意指定坐标  注意:控件坐标永远是 左上角坐标! 3      *  4      * @param parent 5      */ 6     public void showUp(View parent) { 7  8         int[] location = new int[2]; 9 10         parent.getLocationOnScreen(location);11         popupWindow.setAnimationStyle(R.style.AnimationPopup);12         popupWindow.showAtLocation(parent, Gravity.CENTER_HORIZONTAL13                 | Gravity.TOP, 0, location[1] - popupWindow.getHeight() + 20);14 15         popupWindow.setFocusable(true);16         popupWindow.setOutsideTouchable(true);17 18         popupWindow.update();19     }

 

values\style.xml:

1 <resources>2 <style name="AnimationPopup">3     <item name="@android:windowEnterAnimation">@anim/appear</item>4     <item name="@android:windowExitAnimation">@anim/disappear</item>5 </style>6 </resources>

anim\appear.xml

 1 <?xml version="1.0" encoding="utf-8"?> 2 <set xmlns:android="http://schemas.android.com/apk/res/android" > 3  4  5     <scale 6         android:duration="500" 7         android:fromXScale="1.0" 8         android:fromYScale="0.5" 9         android:pivotX="0%"10         android:pivotY="100%"11         android:toXScale="1"12         android:toYScale="1" />13 14 15     <alpha16         android:duration="500"17         android:fromAlpha="0.5"18         android:interpolator="@android:anim/accelerate_interpolator"19         android:toAlpha="1.0" />20 21 22 </set>

anim\disappear.xml

 1 <?xml version="1.0" encoding="utf-8"?> 2 <set xmlns:android="http://schemas.android.com/apk/res/android" > 3  4  5     <scale 6         android:duration="500" 7         android:fromXScale="1.0" 8         android:fromYScale="1" 9         android:pivotX="0%"10         android:pivotY="100%"11         android:toXScale="1"12         android:toYScale="0.5" />13 14 15     <alpha16         android:duration="500"17         android:fromAlpha="1.0"18         android:interpolator="@android:anim/accelerate_interpolator"19         android:toAlpha="0.0" />20 21 22 </set>

 

让 Popwindow 向上弹出