介绍
本篇文章给大家分享的是有关Android开发中实现一个弹出框的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强>截图:强>
<强>动画效果介绍:强>
1。点击ActionBar上“+”按钮,菜单从上方弹出(带反弹效果);
2。再次点击“+”,点击空白区域或者点击返回键、菜单向上方收起;
3。点击弹出框上的按钮时,该按钮放大,其它按钮缩小,菜单整体渐变退出。
<强>主体代码:强>
/* * *仿易信动画弹出框 */公开课MainActivity延伸ActionBarActivity {//用于标记页面顶端位置 私人观点赢富数据; @Override 保护空白>/* * * AnimationHelper */公开课AnimationHelper {/* * *进入动画的时间 */公共静态最终int TIME_IN=300;/* * *进入动画之后的反弹动画时间 */公共静态最终int TIME_IN_BACK=100;/* * *退出动画的时间 */公共静态最终int TIME_OUT=300;/* * *点击PopupWindow上菜单后退出动画的时间 */公共静态最终int TIME_OUT_CLICK=500;/* * * PopupWindow上菜单进入动画 */公共静态动画createPopupAnimIn(上下文语境,int fromYDelta) { AnimationSet AnimationSet=new AnimationSet(上下文,null);//animationSet。setInterpolator(新BounceInterpolator ());//结束时弹跳 animationSet.setFillAfter(真正的);//移动 TranslateAnimation translateAnim=new TranslateAnimation (0,0 fromYDelta 20); translateAnim.setDuration (TIME_IN); animationSet.addAnimation (translateAnim);//回弹效果 TranslateAnimation translateAnim2=new TranslateAnimation (0, 0, 0, -20); translateAnim2.setStartOffset (TIME_IN); translateAnim2.setDuration (TIME_IN_BACK); animationSet.addAnimation (translateAnim2); 返回animationSet; }/* * * PopupWindow上菜单离开动画 */公共静态动画createPopupAnimOut(上下文语境,int toYDelta) { AnimationSet AnimationSet=new AnimationSet(上下文,null); animationSet.setFillAfter(真正的); TranslateAnimation translateAnim=new TranslateAnimation (0, 0, 0, toYDelta); translateAnim.setDuration (TIME_OUT); animationSet.addAnimation (translateAnim); 返回animationSet; }/* * * PopupWindow背景进入动画(透明度渐变) */公共静态动画createPopupBgFadeInAnim () { AlphaAnimation动画=new AlphaAnimation(0, 1.0度); anim.setDuration (TIME_IN); anim.setFillAfter(真正的); 返回似的; }/* * * PopupWindow背景离开动画(透明度渐变) */公共静态动画createPopupBgFadeOutAnim (int持续时间){ AlphaAnimation动画=new AlphaAnimation (1.0 f, 0); anim.setDuration(持续时间); anim.setFillAfter(真正的); 返回似的; }/* * * PopupWindow按钮点击动画 */公共静态动画createPopupItemBiggerAnim(上下文语境){ AnimationSet AnimationSet=new AnimationSet(上下文,null); animationSet.setFillAfter(真正的);//放大(设置缩放的中心点为自己的中心) ScaleAnimation scaleAnim=new ScaleAnimation (2.0 1.0 2.0 1.0 f, f, f, f, 动画。RELATIVE_TO_SELF 0.5 f,动画。RELATIVE_TO_SELF 0.5 f); scaleAnim.setDuration (TIME_OUT_CLICK); animationSet.addAnimation (scaleAnim);//渐变 AlphaAnimation alphaAnim=new AlphaAnimation (1.0 f, 0); alphaAnim。setInterpolator(新AccelerateInterpolator ()); alphaAnim.setDuration (TIME_OUT_CLICK); animationSet.addAnimation (alphaAnim); 返回animationSet; }/* * * PopupWindow按钮点击时其它按钮的动画 */公共静态动画createPopupItemSmallerAnim(上下文语境){//放大(设置缩放的中心点为自己的中心) ScaleAnimation scaleAnim=new ScaleAnimation (1.0 f, 0, 1.0 f, 0, 动画。RELATIVE_TO_SELF 0.5 f,动画。RELATIVE_TO_SELF 0.5 f); scaleAnim.setDuration (TIME_OUT_CLICK); scaleAnim.setFillAfter(真正的); 返回scaleAnim; } }
以上就是Android开发中实现一个弹出框的方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。