xml编写补间动画 PopupWindow实现出现退出的动画

Android中的popupwindow进入和退出的动画效果 主要介绍了Android中的popupwindow进入和退出的动画,需要的朋友可以参考下 立即下载

alpha 渐变透明动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果

Animation是所有动画《scale、alpha、rotate、translate》的基类,这里已scale为例,讲解下Animation所有属性及意义

android:duration            动画持续时间,以毫秒为单位
android:fillAfter              如果设置为true,控件动画结束时,保持动画最后时的状态
android:fillBefore           如果设置为true,控件动画结束时,还原到动画开始前的状态
android:fillEnabled        与android:fillBefore 效果相同
android:repeatCount     重复次数 如果设置为infinite,则表示无限次重复动画
android:repeatMode     重复类型,有reverse和restart两个值,reverse表示倒叙回放,restart表示重新播放一遍,必须与android:repeatCount一起使用才有效果,因为这里的意义是重复类型,即回放的动作   
android:interpolator      插值器,指定动作的效果,比如弹跳,快速等

Scale动画

Scale是Android的尺寸缩放动画,继承自基类Animation

Scale的属性

直接参照代码中的注释(ps:方便说明,直接使用#作为注释符)

<?xml version="1.0" encoding="utf-8"?>  
<scale xmlns:android="http://schemas.android.com/apk/res/android"  
    android:fromXScale="0.0"           #起始x尺寸比例  
    android:toXScale="1.4"             #最终x尺寸比例
    android:fromYScale="0.0"           #起始y尺寸比例
    android:toYScale="1.4"             #最终y尺寸比例
    android:pivotX="50%"               #缩放起点x轴坐标,取值可以是数值(50)、百分数(50%)、百
                                        分数p(50%p),当取值为数值时,缩放起点为View左上角坐标
                                        加具体数值像素,当取值为百分数时,表示在当前View左上角坐
                                        加上View宽度的具体百分比,当取值为百分数p时,表示在View
                                        左上角坐标加上父控件宽度的具体百分比
    android:pivotY="50%"               #同上
    android:duration="700"             #动画持续时间,毫秒为单位
    android:fillAfter="true"           #动画结束后,保持结束时的状态
    android:fillBefore="true"          #动画结束后,恢复为初始状态
    android:fillEnabled="true"         #效果同上
    android:repeatCount="5"            #重复次数,取值为-1时无限重复,默认动画执行一次
    android:repeatMode ="reverse"      #重复模式,有reverse和restart两个值,前者为倒序回放,后者为重新开始
    android::interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器   
    />

alpha 调节透明度

android:fromAlpha         动画开始的透明度,取值范围0.0-1.0,0.0表示完全透明,1.0表示完全不透明
android:toAlpha             动画结束的透明度,取值范围0.0-1.0

rotate 旋转

android:fromDegrees      开始旋转的角度位置,正值表示顺时针方向的度数,负值表示逆时针方向的度数
android:toDegrees          结束旋转的角度位置,正值表示顺时针方向的度数,负值表示逆时针方向的度数
android:pivotX                 旋转中心点X轴坐标,可以是数值,百分数,百分数p三种样式,比如50,50%,50%p;具体意义已经在scale标签中讲述,这里就不一 一作解释了
android:pivotY                旋转中心点Y轴坐标,意义同上

translate平移

android:fromXDelta            起始点X轴坐标,可以是数值,百分数,百分数p三种样式,比如50,50%,50%p;具体意义已经在scale标签中讲述,这里就不作解释了
android:fromYDelta            起始点Y轴坐标,意义同上
android:toXDelta                结束点X轴坐标
android:toYDelta                结束点Y轴坐标

set 定义动作合集

简单来说假如我想要的动画需要平移 旋转 透明度变化 缩放 那么在xml外层就需要使用set

注意:如果使用到Set标签

在Set标签中设置android:repeatCount是无效的,只能在子动画中重复次数才有效果。如果没有设置则默认为1次。如下图一
对于android:duration和android:repeatMode则优先使用Set标签中设置的属性,如果Set标签中没有设置就使用子控件中的(Set没有设置动画时长,子动画一定要设置时长)。如下图一二
android:fillAfter、android:fillBefore、android:fillEnabled属性只能在Set标签中设置,如果没有设置则使用默认的android:fillBefore="true",在子动画中设置是无效的。如下图三

案例 从右到左缩放透明度变化的动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
   <scale
       android:interpolator="@android:anim/decelerate_interpolator"
       android:duration="250"
       android:fromXScale="0.6"
       android:fromYScale="0.6"
       android:toXScale="1.0"
       android:toYScale="1.0"
       android:pivotX="100%"
       android:pivotY="50%"/>
   <alpha
       android:interpolator="@android:anim/decelerate_interpolator"
       android:duration="250"
       android:fromAlpha="0.0"
       android:toAlpha="1.0" />

</set>

在外部获取动画并设置给view

Animation animation = AnimationUtils.loadAnimation(this, R.anim.anim_set);
mTextView.startAnimation(animation);

PopupWindow实现出现退出的动画

如上述动画xml编写后 需要在styles.xml中编写如下内容

<style name="anim_dislike_btn">
        <item name="android:windowEnterAnimation">@anim/move_from_right_to_left</item>
        <item name="android:windowExitAnimation">@anim/move_from_left_to_right</item>
    </style>

android:windowEnterAnimation :弹窗展示动画
android:windowExitAnimation:弹窗退出动画

				View popView = LayoutInflater.from(itemView.getContext()).inflate(R.layout.item_dislike_btn, null); //布局加载器加载菜单布局
                PopupWindow popup = new PopupWindow(popView, 300, 80); // 声明 设置宽高
                // 设置成点击弹窗以外位置让弹窗隐藏
                popup.setOutsideTouchable(true);
                popup.setFocusable(true);
                // 设置弹窗动画 
                // 注意: 必须在showAsDropDown方法前设置动画 否则不生效
                popup.setAnimationStyle(R.style.anim_dislike_btn);
                // 设置弹窗弹出 并设置位置
                popup.showAsDropDown(moreButton, -230, -65, Gravity.CENTER);
直线型一阶倒立摆1---从理论到实践的桥梁 本文深入探讨了直线型一阶倒立摆在控制理论中的核心地位,从非线性控制、鲁棒性到实时反馈等关键问题。通过实际案例和硬件搭建指南,帮助读者理解从理论到实践的过渡,特别适合控制工程初学者和研究人员。文章还提供了算法选型建议和硬件避坑手册,是掌握倒立摆控制的实用指南。 阅读详情

相关推荐

(蓝桥杯)STM32G431RBT6(SysTick timer)

选用最基础的定时器。

2301_81764359的博客 1903

android窗口退出动画,Android中的popupwindow进入和退出的动画效果

废话不多说了直接给大家贴代码了,具体代码如下所示:android:fromXDelta="0"android:toXDelta="0"android:fromYDelta="120"android:toYDelta="0"android:duration="500" />然后定义消失效果的动画文件:android:fromXDelta="0"android:toXDelta="0"andro...

weixin_32921593的博客 480

吉比特-笔试

1. 题一:打雷后下雨的概率是80%,而打闪电后下雨的概率是70%,那么即打雷又打闪电后下雨的概率是多少?   答:打雷后下雨和打闪电后下雨都是独立事件,P=1-又打雷又闪电但没下雨的概率= 1 - 0.2 *0.3 = 94%        题二:打雷后下雨的概率是80%,但是没打闪电后下雨的概率是20%,那么打雷了但没打闪电后下雨的概率是多少?答:P=0.8 *0.2 / ( 0.8 *0

naturism的专栏 2496

PopupWindow的进入和退出的动画效果设置

要实现背景虚化的对话框,有三种方式:PopupWindow,DialogFragment 和 Activity。现在先说说PopuWindow的出现和消失的动画设置。 PopupWindow的进入效果和退出效果,用到style样式。PopupWindow中没有setAnimation方法,只能通过popWindow.setAnimationStyle(R.style.showPopupAni

sugaryaruan的博客 7685

避坑指南:企业微信IP白名单设置失败的5种常见原因及解决方案

本文深入解析企业微信API调用中IP白名单设置失败的5种常见原因,包括动态公网IP变更、代理服务器导致的IP失真等,并提供针对性的解决方案。特别针对可信IP配置问题,详细介绍了诊断方法和Java代码示例,帮助企业开发者快速解决访问限制问题,确保API调用安全稳定。

weixin_29280657的博客 619

使用Docker搭建MaxKB智能体平台

【代码】使用Docker搭建MaxKB智能体平台。

janthinasnail的博客 711

Android中的popupwindow从底部进入和退出的动画效果

今天,简单讲讲android使用popupwindow时设置popupwindow进入和退出的动画效果。 其实这个很简单,之前设置popupwindow从底部进入和退出的效果时,当时记不清了,所以在网上查询了资料,最终才做出来了。这里记录一下。 一.编写popupwindow的动画的xml文件 1、从底部退出动画pop_exit_anim.xml <transl

谢岩的博客 9433

OTA(Over-The-Air)升级

OTA(Over-the-Air)是一种通过无线方式进行数据传输和更新的技术,通常用于电子设备(如智能手机、汽车、物联网设备等)的软件、固件或配置更新。OTA可以在设备与服务器之间进行远程传输,用户无需将设备接入电脑或进行有线操作。通过OTA,用户只需要通过Wi-Fi或移动网络连接,便能自动接收并安装最新的更新,而无需手动干预。OTA的优点是便捷和高效,能够确保设备随时保持最新状态,同时减少用户的操作负担。:如智能家居设备、路由器、汽车等硬件设备的固件更新。:确保设备上的应用保持最新版本。

weixin_50127894的博客 5067

Android PopupWindow使用详解

先来看一下PopupWindow的描述:        A popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity.        PopupWind

yalinfendou的专栏 9067

解密DS90UB983-Q1的汽车电子魔法:如何通过FPD-Link IV实现4K视频的无缝传输

本文深入解析了德州仪器DS90UB983-Q1串行器芯片如何通过FPD-Link IV技术在汽车电子中实现4K视频无缝传输。文章详细介绍了该技术的核心功能,包括多流传输(MST)模式、热插拔检测(Hot Plug Detect)机制以及电磁兼容性设计,为车载信息娱乐系统提供了高带宽、低延迟的可靠解决方案。

i3j4k5的博客 242

19、英国模式:银行体系的演变与现代金融架构

本文深入探讨了英国银行体系从专业化向全能银行的演变过程,分析了自律监管模式的优劣,并解析了围栏制度对金融稳定的影响。同时,文章还介绍了信用合作社、建筑协会和投资银行的角色与转型,全面展示了英国金融体系的多样性与复杂性,以及其在全球金融市场中的重要作用。

embedding5hiker的博客 105

动画实现PoPupWindow

1、在res/anim文件下 hide.xml        android:fromXScale="1.0"      android:toXScale="0.0"      android:fromYScale="1.0"      android:toYScale="0.0"      android:pivotX="50%"      android:pivotY="50%

SongCongCong_scc 288

华为od 面试八股文_测试/测试开发_01_含答案

华为od面试八股文_测试/测试开发_01_含答案

MISAYAONE的博客 3816

android 坐进动画,Android中的popupwindow从底部进入和退出的动画效果

释放双眼,带上耳机,听听看~!今天,简单讲讲android使用popupwindow时设置popupwindow进入和退出的动画效果。其实这个很简单,之前设置popupwindow从底部进入和退出的效果时,当时记不清了,所以在网上查询了资料,最终才做出来了。这里记录一下。一.编写popupwindow的动画的xml文件1、从底部退出动画pop_exit_anim.xmlandroid:durati...

weixin_34717961的博客 700

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PopupWindow设置动画简单实现

专高第三天PopupWindow设置动画布局文件在res创建一个anim在里面创建两个布局文件分别写上如下图在values中创建一个style文件将他们引入进来最后就是我们的主要代码将我们之前就写好的布局和id都初始化数据之后创建一个PopupWindow加载我们需要的布局必不可少的布局三要素宽高应用布局然后设置窗口透明度然后选择设置样式然后取消窗口透明度最后动画效果和设置点击外部取消然后设置弹出...

Cys_yes的博客 421

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 退出 动画效果,Android中的popupwindow进入和退出的动画效果

废话不多说了直接给大家贴代码了,具体代码如下所示:android:fromXDelta="0"android:toXDelta="0"android:fromYDelta="120"android:toYDelta="0"android:duration="500" />然后定义消失效果的动画文件:android:fromXDelta="0"android:toXDelta="0"andro...

weixin_36352719的博客 350

android animation——view进入退出动画

在设计android项目的时候我们有时候需要对activity的进入退出做一些动画处理,虽然android自身已经做了动画处理,但是我们需要更加炫酷的动画就需要自己去写一些动画了。

boolean的博客 7124

android view退出动画,android animation——view进来退出动画

在设计android项目的时候我们有时候需要对activity的进入退出做一些动画处理,虽然android自身已经做了动画处理,但是我们需要更加炫酷的动画就需要自己去写一些动画了。有时候不光activity,还有popupwindow或者自定义view都是需要动画的。那么,我就来说说简单而简洁的view进入退出动画。首先,我们在项目中新建一个存放动画的文件夹(res/anim)从xml开始:and...

weixin_29947319的博客 702

popupwindow进入和退出动画

1.在res/anim文件下创建pophidden_anim和popshow_anim pophidden_anim代码如下: <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="100%" /> <alpha

ForMuHan的博客 1212

android中的popupwindow进入和退出的动画

set xmlns:android="http://schemas.android.com/apk/res/android"> translate android:fromXDelta="0" android:toXDelta="0" android:fromYDelta="120" android:toY

wdsunday的专栏 5507

PopupWindow动画

PopupWindow动画 1:先在ras文件夹下创建anim,在anim里创建俩个选择器 //进入时动画 <set xmlns:android="http://schemas.android.com/apk/res/android" //动画时间 android:duration="500"> //平移,从底部到设置的位置 <translate android:fromYDelta="100%p" android:toYDelta="0"/>

kc527347568的博客 533

Android PopupWindow实现带背景阴影的下滑选择框

先上图:效果还是很丝滑的,这里动画主要用到了属性动画。实现逻辑很简单,动画都是在popupwindow调用showAsDropDown() 和dismiss()时执行。这里主要是注意退出动画的实现,在dismiss()中执行动画是无效的,需要在动画执行完毕后再执行super.dismiss(); 可拓展能力强,可以结合自身需求实现不同的效果。以下是源码:PopupWindow :public cla

little_shengsheng的博客 4657

Android popupwindow动画的使用

要实现背景虚化的对话框,有三种方式:PopupWindow,DialogFragment 和 Activity。现在先说说PopuWindow的出现和消失的动画设置。 文章参考:Android之Animation动画的使用(一) PopupWindow的进入效果和退出效果,用到style样式。PopupWindow中没有setAnimation方法,只能通过popWindow.setA

Nothing 1537

popupwindow 动画效果

最好的学习 android 某一个 widget 的方法 就是 自己找代码 不管懂不懂,敲出来 ,然后在机子上 看到 效果 ,最后 去理解 每行代码的意思。 上述话是个人观点。哈哈   经常 见 这样的情况吧:点击退出,然后屏幕中央出现一个弹出框 ,你是否退出?  确定     取消, 我想实现这样的效果,点击确定后  ,从屏幕的两侧飞出确定 和取消按钮 一直 落在屏幕中央 渐渐出现的 b

RD哥哥的博客 1897

android窗口退出动画,如何在Android中为弹出窗口制作动画

PopupWindow自定义布局更方便,并且显示位置自由,没有任何限制。使用下面的代码并享受动画。在此动画中,使用底部滑入和滑出,但是您只能更改滑入/滑出动画,并根据您的动画对应用程序中的任何位置进行动画处理,并且还需要根据自己的动画进行动画处理,您必须更改重力->>底部,顶部等。动画资源文件夹:1.slide_in_bottom.xmlandroid:shareInterpolato...

weixin_42365401的博客 459

PopupWindow的设置以及效果

 只是自己用的时候顺便整理了一下 1.创建一个popupwindow   View view= LayoutInflater.from(context).inflate(R.layout.shuruchewei, null);   //背景颜色   view.setBackgroundColor(Color.WHITE);   PopupWinow popupWindow = ne

qq_18509939的专栏 2610

android 弹出菜单动画,android popwindow实现左侧弹出菜单层及PopupWindow主要方法介绍...

PopupWindow可以实现浮层效果,主要方法有:可以自定义view,通过LayoutInflator方法;可以出现和退出时显示动画;可以指定显示位置等。为了将PopupWindow的多个功能展现并力求用简单的代码实现,编写了一个点击按钮左侧弹出菜单的功能,实现出现和退出时显示动画效果并点击其他区域时弹出层自动消失,效果图如下:源码:1.PopwindowOnLeftActivity.javap...

weixin_34401781的博客 678
上一篇: Jetpack Compose ExoPlayer教程
下一篇: 自定义recycleView的删除&移动的动画
Azadoo
博客等级 码龄7年 36粉丝 228原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值