`

android实现popupwindow的动画效果

阅读更多
问题:在打开或者关闭popupwindow的时候怎么样显示动画效果?
参考了launcher里面关于页面缩略图的popupwindow打开时的动画效果,具体实现如下:
在我之前的例子上添加动画效果,例子在这儿可以看到:http://gqdy365.iteye.com/blog/994746
在anim中定义两个动画文件,一个是在打开popupwindow时使用的,一个是关闭时使用的。我打开的动画效果如下:
<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="700" />
</set>

是一个缩放效果,弹出时从最小逐渐展开!关闭的动画可以参考上面的代码。
popupwindow的效果要在style中定义相应的动画并引用刚才定义的动画文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
	<style name="AnimationPreview">
		<item name="android:windowEnterAnimation">@anim/fade_in</item>
		<item name="android:windowExitAnimation">@anim/fade_out</item>
	</style>
</resources>

其中fade_in和fade_out是刚才在anim中定义的文件。
完成上述定义之后就可以在代码中引用了:

			PopupWindow window = new PopupWindow(v, 500,260);

		//设置整个popupwindow的样式。
		window.setBackgroundDrawable(getResources().getDrawable(R.drawable.rounded_corners_pop));
		//使窗口里面的空间显示其相应的效果,比较点击button时背景颜色改变。
		//如果为false点击相关的空间表面上没有反应,但事件是可以监听到的。
		//listview的话就没有了作用。
		window.setAnimationStyle(R.style.AnimationPreview);
		window.setFocusable(true);
		window.update();
		window.showAtLocation(parent, Gravity.CENTER_VERTICAL, 0, 0);

其中主要是window.setAnimationStyle(R.style.AnimationPreview);这一句给popupwindow添加了动画样式。

效果图我就不截图了,很难截取的!
分享到:
评论
6 楼 stonenotes 2013-06-09  
mzba520 写道
请问有没有从上往下拉出的动画效果例子?

同问
5 楼 weyee 2012-10-08  
你好,我现在想做一个移动的效,慢慢移进屏幕,你知道怎么做么?
4 楼 gqdy365 2012-08-31  
yahier 写道
  解决了我的问题 好感谢。想请你吃饭 

哈哈,可以,我在深圳,到时候联系我,吃火锅!
3 楼 yahier 2012-08-15  
  解决了我的问题 好感谢。想请你吃饭 
2 楼 智在千里 2011-11-29  
mzba520 写道
请问有没有从上往下拉出的动画效果例子?

我也在找
1 楼 mzba520 2011-11-07  
请问有没有从上往下拉出的动画效果例子?

相关推荐

Global site tag (gtag.js) - Google Analytics