我在对View进行动画处理的时候,发现直接使用startAnimation(Animation)效果比较卡。
而使用PopupWindow加载同样的动画就很流畅很平滑,这是为什么呢?
怎么才能startAnimation(Animation)效果跟PopupWindow实现的动画效果差不多呢?

解决方案 »

  1.   

    现在遇到一个问题,求教一下楼主,wo在显示popupWindow是设置了popupWindow的view的显示动画;Animation animation = AnimationUtils.loadAnimation(R.anim.enter_anim);
    View myView = LayoutInflater.from(context).inflate(R.layout.popup_view,null);
    myView.setAnimation(animation);
    PopupWindow window = new PopupWindow(context);
    window.setContentView(myView);
    window.setWidth(LayoutParams.WRAP_CONTENT);
    window.setHeight(LayoutParams.WRAP_CONTENT);
    popupWindow.showAtLocation(mainView,Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0);
    myView.startAniamtion(animation);
    我在代码终究是上面这样写的,但是它的动画只执行一次,就不再执行了,即使是再次启动也不执行,楼主能帮我看下是什么原因吗。
      

  2.   

    把动画设置给popupwindow,而不是设置给popupwindow里的view.
    style.xml:
    <style name="popup_anim_style">
      <!-- 指定显示的动画xml -->
            <item name="android:windowEnterAnimation">@anim/anim_in</item>
      <!-- 指定消失的动画xml -->
            <item name="android:windowExitAnimation">@anim/anim_out</item>
        </style>code:
    popupwindow.setAnimationStyle(R.style.popup_anim_style);
      

  3.   

    系统的版本是什么,3.0以下还是以上。对view做动画,首先你得搞明白动画的原理是什么。这个讲起来有点复杂。提供一种方法的思路:
    把要做动画的view作一个截图,具体方法是
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
      

  4.   


    接上:
    然后把这个bitmap放置到一个imageview中,对这个imageview做动画。这样效果就会很平滑。