首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从animationEnd上的AnimatorListener获取tranlationX和translationY?

从animationEnd上的AnimatorListener获取translationX和translationY可以通过以下步骤实现:

  1. 首先,创建一个AnimatorListener对象,并重写其onAnimationEnd()方法。
  2. 在onAnimationEnd()方法中,获取动画的目标视图对象,并使用该对象的getTranslationX()和getTranslationY()方法来获取translationX和translationY的值。
  3. 在获取到translationX和translationY的值后,可以根据需要进行进一步的处理,比如打印输出、存储到变量中或者应用到其他逻辑中。

以下是一个示例代码:

代码语言:txt
复制
AnimatorListener animatorListener = new AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {
        // 动画开始时的逻辑处理
    }

    @Override
    public void onAnimationEnd(Animator animation) {
        // 动画结束时的逻辑处理
        View targetView = animation.getTarget(); // 获取动画的目标视图对象
        float translationX = targetView.getTranslationX(); // 获取translationX的值
        float translationY = targetView.getTranslationY(); // 获取translationY的值

        // 根据需要进行进一步的处理
        // ...

        // 示例:打印输出translationX和translationY的值
        System.out.println("translationX: " + translationX);
        System.out.println("translationY: " + translationY);
    }

    @Override
    public void onAnimationCancel(Animator animation) {
        // 动画取消时的逻辑处理
    }

    @Override
    public void onAnimationRepeat(Animator animation) {
        // 动画重复时的逻辑处理
    }
};

// 将AnimatorListener对象设置给动画
animation.addListener(animatorListener);

在上述示例代码中,我们通过重写AnimatorListener的onAnimationEnd()方法,在动画结束时获取了目标视图的translationX和translationY的值,并进行了打印输出。你可以根据实际需求,将这些值应用到其他逻辑中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 动画总结(5) - 属性动画

包括 ValueAnimator、ObjectAnimator 和 AnimatorSet: ValueAnimator 只是计算动画各帧的属性值,将这些属性值如何设置给相应的对象需要开发者自己实现,本身只是对值计算...1.5f), ObjectAnimator.ofFloat(myObject, "scaleY", 1f, 1.5f) ) set.setDuration(5000).start() 属性 和补间动画一样的属性有...setter 方法设置后能够真的改变这个属性值 如果不满足条件的解决方法 直接加上 getter/setter 方法去改变属性 使用装饰模式包装个类,提供 getter/setter 方法,方法内部进行转变使得能够设置到属性上...myView.animate().alpha(0); // 淡出 myView.animate().x(500).y(500); // 移动这个 View 的 x 值和 y 值到 (500, 500)...)时运行的Runnable任务对象 withEndAction(Runnable runnable) - 设置用于动画监听结束(Animator.AnimatorListener)时运行的Runnable

93620
  • 自定义Behavior —— 仿知乎,FloatActionButton隐藏与展示

    主要介绍了APPBarLayout和CollapsingToolbarLayout的基本用法,AppBarLayout主要用来实现在滚动的时候ToolBar的 隐藏于展示,CollapsingToolbarLayout...child 的 translationY float translationY = Math.abs(dependency.getTop()); child.setTranslationY...,向下滑动的时候会显示,是因为我们在 onDependentViewChanged 方法的时候 动态地根据 dependency 的 top 值改变 RadioGroup 的 translationY...= 0; } 在 onNestedPreScroll() 方法里面,我们根据我们的逻辑来决定是否显示 target , 在这里我们是向上上滑动的时候,如果我们滑动的距离超过 target 的高度...并且 当前是可见的状态下,我们执行动画,隐藏 target,当我们向下滑动的时候,并且 View 是不可见的情况下,我们执行动画 ,显示target //2.根据滑动的距离显示和隐藏footer

    1.1K11

    自定义view仿写今日头条点赞动画!

    前言 平时喜欢看今日头条,上面的财经、科技和NBA栏目都很喜欢,无意中发现他的点赞动画还不错,一下子就吸引到了我。遂即想要不自己实现一下。...实现过程 3.1 外层布局 因为今日头条里面底部评论框和资讯列表页都会有点赞按钮,那么点赞效果的表情机会满屏幕都存在,所以最外层继承了RelativeLayout。...(也就是抛物线动画)的实现 抛物线动画 分为上升和下降两部分, 上升时,x轴匀速左移或右移,y轴减速向上,表情图片宽高从0变到100;下降时,x变为1.2倍x,高度变为最高处的0.8,透明度在最后1/8...时间段里从1变为0。...,从使用概念原理几个方面我们需要深学细悟、研机析理,做到融会贯通。

    41710

    自定义View(六)-动画- AnimatorSet与XML设置属性动画

    第二:playSequentially只有上一个控件做完动画以后,才会激活下一个控件的动画,如果上一控件的动画是无限循环,那下一个控件就别再指望能做动画了。...AnimatorSet.Builder : //调用AnimatorSet中的play方法是获取AnimatorSet.Builder对象的唯一途径...GIF14.gif AnimatorSet监听器 因为ValueAnimator和AnimatorSet都派生自Animator类,而AnimatorListener是Animator类中的函数。...GIF16.gif 虽然我们的tv2TranslateY动画在无限循环,但Log中没有打印出对应的repeat的日志,从日志中也可以看出,AnimatorSet的监听函数也只是用来监听AnimatorSet...---- 感谢 站在巨人的肩膀上可以让我们看的更远。 Android自定义控件三部曲文章

    1.5K20

    如何获取目标基因的转录因子(上)——Biomart下载基因和motif位置信息

    科研过程中我们经常会使用Ensembl(http://asia.ensembl.org/index.html) 网站来获取物种的参考基因组,其中BioMart工具可以获取物种的基因注释信息,以及跨数据库的...在参考基因组和基因注释文件一文中有详细介绍如何在Ensembel数据库中获取参考基因组和基因注释文件。(点击蓝字即可阅读) 生信分析中,想要找到感兴趣基因的转录因子结合位点,该怎么做呢? 1....bed格式文件提供了一种灵活的方式来定义数据行,以此描述基因注释的信息。BED行有3个必须的列和9个可选的列。 每行的数据格式要求一致。...在Attributes处选择需要的信息列,点击Results和GO进行数据下载 ? ?...将上述下载的两个文件分别命名为 GRCh38.gene.bed和 GRCh38.TFmotif_binding.bed ,在Shell中查看一下: 基因组中每个基因所在的染色体、位置和链的信息,以及对应的

    8.9K41

    如何在CentOS 7上安装和配置Grafana从Zabbix绘制漂亮的图形

    在本教程中,您将安装Grafana并将其配置为显示来自Zabbix的数据,您将学习如何编写自己的自定义仪表板来监视CPU和文件使用情况。...这将在仪表上显示这些阈值。 从值下拉列表中选择current选项。 仪表现在看起来像这样: 返回仪表板并按CTRL+S保存。 现在让我们测试一下该仪表如何响应实时事件。...结论 在本教程中,您学习了如何安装和配置Grafana,并创建了一个自定义仪表板,其中的面板显示了Zabbix的数据。您可以在桌面甚至大屏幕上显示这些仪表板,以便管理员可以查看IT基础架构的状态。...仪表板上的每个面板都可以显示来自不同服务器的数据,您可以使用Grafana以许多有用的方式过滤数据。在一个教程中很难描述Grafana的所有功能,因此请探索,试验和构建自己的漂亮仪表板。...想要了解更多关于安装和配置Grafana从Zabbix绘制漂亮的图形的相关教程,请前往腾讯云+社区学习更多知识。

    6K10

    【译】Activity分割动画如何使用我的动画##

    为了获取根View或其他任何View视图的bitmap,可以通过调用getDrawingCache( )方法,它将返回一个缓存bitmap,但前提是这个View允许绘图缓存,这就是为什么在获取缓存bitmap...这两个Imageview将直接添加到activity所在的Window上。这样做不仅可以保证Imageview能够处在即将被填充的布局之上,而且还可以灵活控制每一个Imageview在屏幕上的位置。...我使用硬件加速(了解更多有关硬件加速动画,请阅读我最新发布的blog)并且在动画结束或者取消后,做了一些清理操作(如,移除硬件图层,把Imageview从Window窗口移除等等) 如何使用我的动画##...我曾反复思考,在尽量不限制开发者的情况下,如何最简单便捷的使用它。...下一步## 你可以将它扩展的更丰富,比如: 垂直分割 - 让Activity从两侧移出。 把Activity分割成更多的部分。 做所有你能想到的事情。

    1.4K20

    在 View 上使用挂起函数

    最常见的用法有以下几项: AnimatorListener 获取动画结束相关的事件 RecyclerView.OnScrollListener 获取滑动状态变更事件 View.OnLayoutChangeListener...正是因为 Android 上的 UI 编程从根本上就是异步的,所以造成了如此之多的回调。从测量、布局、绘制,到调度插入,整个过程都是异步的。...如果某个 view 从它所在的层级中被移除,那么根据协程所处的作用域 (scope),它有可能会被取消。...() titleView.animate().translationY(0f) } 我们为 View 的布局创建了一个 await 函数。...接下来的文章中,我们将探讨如何使用协程来组织一个复杂的变换动画,其中也包括了一些常见 View 的实现,感兴趣的读者请继续关注我们的更新。

    2.4K30

    自定义View(三)-动画-属性动画ValueAnimator

    有人会觉得直接用缩放(scaleX)来做,但是做出来的效果却是将控件宽度拉长而不是增加。不管是从视觉上还是理解上都不是我们想要的效果。后期我们会做实验来试一下。...如何理解呢?我们知道在创建对象的时候我们有两个方法一个是传入int一个float,这里就是获取相应某一时间当前运动点的值。传入的是int返回就是int,返回float就是float。...ValueAnimator动画创建一个从0-400一个改变的值,然后设置其数值变换的监听,在监听内部获取到从动画开始到结束时间内变换的数值,然后将在变化中重新设置textview的位置,使textview...valueani.gif 这里方法对应关系start()->cancel() pause() ->resume() 从打印中我们可以看到开始和继续的区别 结束和暂停的区别。...感谢 站在巨人的肩膀上可以让我们看的更远。 Android自定义控件三部曲文章

    1.4K31

    Android 动画笔记

    ,从 0 到 100 计算动画的值,下面的代码演示了如何为自定义的类型的值实现动画: ValueAnimator animation = ValueAnimator.ofObject(new MyTypeEvaluator...View 类型中与属性动画实现相关的新属性有: translationX 和 translationY:这两个属性控制了 View 对象从左到右和从上到下所在的相对位置,这里的相对位置是指相对于它的容器给它设定的位置...x 和 y:这两个属性用于描述 View 对象在容器中的最终位置,也就是其从左到右的位置加上 translationX 的值以及从上到下的位置加上 translationY 的值。...为了区分使用新属性动画 API 的代码和使用遗留 view animation 框架的代码,从 Android 3.1 开始,你需要将这些 XML 文件放在 res/animator/ 文件夹下。...ValueAnimator,你需要填充一个对象,然后添加一个 AnimatorUpdateListener 监听器,在回调中获取更新的动画值,然后将其用在你的 View 对象上,例如: ValueAnimator

    23720

    【Android】属性动画(基本用法)

    缺点,视觉上 上变化,并不是真正的位置上的变化。 属性动画(Property) 控制属性来实现动画。 特点:最为强大的动画,弥补了补间动画的缺点,实现位置+视觉的变化。...除了把透明度从1变成0,ObjectAnimator还支持多个动画。 例:在2s内,将imageView的透明度从1变成0然后再变成1。...translationX 这里的移动分为沿x、y轴移动,沿x轴时使用translationX,沿y轴移动使用translationY。...with(Animator anim) :将现有动画和传入的动画同时执行 接下来看看应该怎么使用。...参考 Android属性动画完全解析(上),初识属性动画的基本用法 Android 属性动画(Property Animation) 完全解析 (上) http://blog.csdn.net/singwhatiwanna

    1.5K80

    Android仿饿了么购物车功能

    现在商城应用上,购物车功能可以说是不可缺少的,每个应用的购物车模块实现方式都差不多,这篇我们来仿一下饿了么的购物车功能,用过的童鞋都知道,印象最深刻的应该是添加或减少数量时,抛物线的动画效果,话不多说,..., 二是数量不为0时只会进行抛物线动画,其中抛物线动画实现思路就是得到加号和购物车的坐标,然后得到最外层容器添加一个view来执行这个动画,动画执行完成后移除这个动画: //点击加号 myHolder.imageViewAdd.setOnClickListener...v.getWidth() / 2); //纵向 ObjectAnimator oaY = ObjectAnimator.ofFloat(iv, "translationY...mActivity.mCount--; mActivity.setMtvNum(); } } }); 该功能的实现重点在抛物线的动画效果上...小编整理了一份Android电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦! [在这里插入图片描述] 欢迎关注公众号(longxuanzhigu),获得更多福利、精彩内容哦!

    98540

    【Android 应用开发】Android 组件 位置坐标 属性 ( 组件位置属性 | 父容器坐标系坐标 | 窗口坐标系坐标 | 屏幕坐标系坐标 | 触摸坐标 )

    组件当前位置 属性 : x , y 是当前的位置 , 这个位置会随着 translationX 和 translationY 的值改变而改变 ; ① x : 表示组件左上角当前的实际位置的 x 坐标 ,...当前位置 和 偏移位置 的 初始值 : x 的初始值是 left , y 的初始值是 top , translationX 初始值是 0 , translationY 初始值是 0; 5 ....View 组件的触摸位置 属性 ---- View 组件的触摸事件的位置属性 : ① x , y 相对于组件坐标 : 当触摸组件时 , 从 MotionEvent 事件中获取的 x , y 坐标是 相对于本组件的坐标..., 即坐标系的原点 ( 0, 0 ) 是该组件的左上角位置 ; ② rawX , rawY 相对于屏幕坐标 : 从 MotionEvent 事件中获取的 rawX , rawY 坐标 , 是当前触摸点相对于屏幕的坐标..., 摆放完毕后 , 就可以获取组件的坐标和大小属性 ; 3 .

    4K10

    ▲ Android 自定义可收缩的菜单

    但是我这里要说的是通过计算来实现这个效果,很6的做法 实现原理 先根据圆的半径来定位每一张图片的位置 然后大家可以清晰的看出 X轴的移动距离 = radius sin(a) Y轴的移动距离 = radiuscos...菜单的夹角和是90°,共有5个菜单项,相当于把90°分为4等份。...° 假设index表示当前位置的索引,从0开始,第一个索引就是0,第二个就是1… 所以当前菜单与Y轴之间的夹角就是(22*index)° 【2】如何计算对应的正弦值,余弦值?...获取弧度有2中方法 第一种呢,Math类中Math.PI不仅代表圆周率π,也代表180°所对应的弧度值,所以Math.sin(Math.PI)就是180°的正弦值,/2就是90°的正玄值了。...第二种就是 根据度数来获取弧度值,Math中提供了一个函数 double toReadians(double angdeg) 代码实现 XML布局 <?

    52920

    移动端重构实战系列4——进入离开动画

    right-in/out六组基础动画,下面我们以fade-in/out为例说明如何使用: 直接调用mixin: @include animation-fade-in; @include animation-fade-out...名字(会自动补上in/out),第二个表示opacity值(from为起始,to为结束) 现在css的动画class已经有了,接下来就是用js把这两个class分别添加到进入和离开的时候。...= this.whichEndEvent(); // 使用animationend事件 this.endBind = this.end.bind(this); // 绑定this...动画,而不是transition动画,因为transition动画从none到block的时候,直接添加动画的class是不会有动画效果的(除非使用回调函数或promise),而animation动画从...none到block的时候添加动画class是可以的。

    63620
    领券