您的位置:首页 > 运维架构

为PopupWindow设置弹出动画效果

2012-05-08 16:28 567 查看
关键代码:
LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View menuView = (View)mLayoutInflater.inflate(R.layout.alert_dialog_menu_layout_new, null, true);//弹出窗口包含的视图
popupWindow = new PopupWindow(menuView, LayoutParams.FILL_PARENT,238, true);//创建弹出窗口,指定大小

popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_style_alert_dialog_background));//设置弹出窗口的背景
popupWindow.setAnimationStyle(R.style.PopupAnimation);//设置窗口显示的动画效果
popupWindow.showAtLocation(findViewById(R.id.parent), Gravity.BOTTOM, 0, 0);//设置窗口显示的位置
popupWindow.update();

Style.xml文件:
<style name="PopupAnimation" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/menu_up</item>
</style>
menu_up.xml文件:
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate android:duration="500" android:fromXDelta="0.0"
android:toXDelta="0.0" android:fromYDelta="100%" android:toYDelta="50%"
/>
</set>

> 首先定义好,显示和消失的动画xml;
eg:

<!-- 显示动画-->

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

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

<scale android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:fromXScale="0.0"

android:toXScale="1.0"

android:fromYScale="0.0"

android:toYScale="1.0"

android:pivotX="50%"

android:pivotY="50%"

android:fillAfter="false"

android:duration="200" >

</scale>

</set>

<!-- 消失动画-->

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

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

<!-- 透明度渐变-->

<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="200" />

</set>

2> popupwindow 的显示和消失动画,是通过setAnimationStyle(int id) 的方法,来设置动画的。 这个方法的参数是,一个style 的id ;

所以需要一个 动画style;

eg:

<!-- popwidnow 显示消失动画-->

<style name="mypopwindow_anim_style">

<item name="android:windowEnterAnimation">@anim/popshow_anim</item> <!-- 指定显示的动画xml -->

<item name="android:windowExitAnimation">@anim/pophidden_anim</item> <!-- 指定消失的动画xml -->

</style>

3> 在代码中,添加popupwindow 动画;

eg:

PopupWindow myimgpopupwindow = new PopupWindow( View (要显示的view对象),
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);//创建一个PopupWindow窗体

myimgpopupwindow.setAnimationStyle(R.style.mypopwindow_anim_style); //设置动画

myimgpopupwindow.showAtLocation( View( 参照的view对象), Gravity.CENTER, 0, 0); //居中来显示

好了,1,2,3, 搞定!这下,你是不是也会给popupwindow设置显示消失动画了? Come on ! 赶快试试吧!*~*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: