Android PopupWindow在某个控件正下方显示,附带动画效果

刚开始做的使用用的translate动画,弄出来的效果很突兀,后来改用scale,达到leader的要求,给需要同样效果的你。效果图:


a.gif

代码:

Java部分


<pre>
PopupWindow pop;
private void showPop(){
if(pop==null){
pop=new PopupWindow(this);
pop.setWidth(tvPopupWindowAnimation.getWidth());
pop.setHeight(280);
pop.setAnimationStyle(R.style.PopupWindowAnimStyle);
pop.setFocusable(true);
pop.setTouchable(true);
pop.setBackgroundDrawable(
new ColorDrawable(ContextCompat.getColor(getApplicationContext(),R.color.colorPrimary)));
View v=new View(this);
v.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
     ViewGroup.LayoutParams.MATCH_PARENT));
pop.setContentView(v);
}
if(!pop.isShowing()){
int[] position=new int[2];
tvPopupWindowAnimation.getLocationOnScreen(position);
pop.showAtLocation(tvPopupWindowAnimation, Gravity.NO_GRAVITY,position[0],
position[1]+ tvPopupWindowAnimation.getHeight());
}
}
</pre>

style部分

<pre>

<style name="PopupWindowAnimStyle">
    <item name="android:windowEnterAnimation">@anim/in_like_drop_down</item>
    <item name="android:windowExitAnimation">@anim/out_like_shrink_on</item>
</style>

</pre>

anim部分

in_like_drop_down

<pre>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200">
<scale
android:fromXScale="1.0"
android:fromYScale="0.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXScale="1.0"
android:toYScale="1.0" />
</set>
</pre>

out_like_shrink_on

<pre>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200">
<scale
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXScale="1.0"
android:toYScale="0.0"/>
</set>
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,641评论 2 45
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,457评论 25 709
  • 在开发一款商业App时,我们大都会为我们的App设置一个启动页,苹果默认启动页停留的时间很短,有时不满足我们的需求...
    ldjhust阅读 5,893评论 0 7
  • 看远方 并没有看远方的山 而是在看天空滴落雨滴的形状
    RichurLiu阅读 101评论 0 1
  • 新群,只有我一个,急招十名管理,五名外交部人员,会写文会画画嘴皮子好的优先,可需要发外交内容,外交部也是管理,比一...
    私二次元愛阅读 354评论 0 0