我在对View进行动画处理的时候,发现直接使用startAnimation(Animation)效果比较卡。
而使用PopupWindow加载同样的动画就很流畅很平滑,这是为什么呢?
怎么才能startAnimation(Animation)效果跟PopupWindow实现的动画效果差不多呢?
而使用PopupWindow加载同样的动画就很流畅很平滑,这是为什么呢?
怎么才能startAnimation(Animation)效果跟PopupWindow实现的动画效果差不多呢?
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);
我在代码终究是上面这样写的,但是它的动画只执行一次,就不再执行了,即使是再次启动也不执行,楼主能帮我看下是什么原因吗。
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);
把要做动画的view作一个截图,具体方法是
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
接上:
然后把这个bitmap放置到一个imageview中,对这个imageview做动画。这样效果就会很平滑。