一、怎么设置动画
1、在value文件夹下的styles中设置上style
<resources>
<style name="PopupAnimation1111111111111">
<item name="android:windowEnterAnimation">@anim/scale_anim</item>
<item name="android:windowExitAnimation">@anim/rotate_anim</item>
</style>
</resources>
2、在调用PopupWindow的setAnimationStyle(R.style.XXX);
3、对PopupWindow的update方法的理解:
(1)这个方法是重新设置PopupWindow的状态的
(2)这个方法有很多的重构方法,量具体情况而用
(3)看如下代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initPopup(); } PopupWindow popup; View contentView; public void onClick(View view) { int id = view.getId(); if (id == R.id.btn1) { 1、popup.showAsDropDown(view); 2、popup.setAnimationStyle(R.style.PopupAnimation1111111111111); 3、popup.update(); 4、popup.update(); } if (id == R.id.btn2) { popup.showAsDropDown(view); } } private void initPopup() { contentView = LayoutInflater.from(this).inflate( R.layout.popup_select_mode, null); popup = new PopupWindow(contentView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true); popup.setBackgroundDrawable(getResources().getDrawable( android.R.color.white)); }
二、update方法
1、无参和有参的update的共同点:
popup.showAsDropDown(view);
popup.setAnimationStyle(R.style.PopupAnimation1111111111111);
当在PopupWindow显示过程(调用了showAsDropDown)中改变了PopupWindow的设置,如果没有调用update
方法,那么这个设置只能在下次显示的时候才会有效果,如果显示过程(调用了showAsDropDown)中,有更
PopupWindow的设置,并且立即调用了update方法,那么这次的显示也会按照更新后的设置来显示
2、无参和有参的update的区别:
popup.showAsDropDown(view);
popup.setAnimationStyle(R.style.PopupAnimation1111111111111);
popup.update(500,400);
因为是在显示过程中更新的,所以这一次显示会显示更新后的内容,内容包括动画和高宽
popup.showAsDropDown(view);
popup.setAnimationStyle(R.style.PopupAnimation1111111111111);
popup.update();
在这次的显示过程中,只是应用了动画。
版权声明:本文为博主原创文章,未经博主允许不得转载。