首页
学习
活动
专区
工具
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动画教程之属性动画详解

其实 ,只要Google对一个对象某个属性提供了getset方法,我们就可以使用这个属性来实现动画效果。...其实,在属性动画中,如何产生每一步动画效果,都是通过 ValueAnimator 计算出来。 比如我们要实现一个 0-100 位移动画。...随着动画时间持续,它产生值也会 0-100 递增。通过这个 ValueAnimator 产生值,再进行属性设置即可。 那么 ValueAnimator 究竟是如何产生这些值呢?...实际,ObjectAnimator 就是基于 ValueAnimator 进行一次封装。...在回调事件中,通过参数 animation getAnimationValue() 方法,来获取对应 value。有了这个值,我们就可以实现我们所有想要动画效果。

93710

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

92720
  • Android实现纸飞机简单操作

    在项目中,我们要求做一个纸飞机功能:就是当打开这个界面时,会有4架纸飞机屏幕左侧飞入,然后到达自己位置坐上下浮动,同时云彩也不断地屏幕右侧飘到屏幕左侧。...mWidth; private LayoutParams lp; private Drawable[] drawables; private Random random = new Random(); //获取...R.drawable.pl_blue); drawables[0] = blue; drawables[1] = yellow; drawables[2] = green; drawables[3] = pink; // 获取宽高...,外部进行调用,x、y分别表示飞机进入之后所 //停留位置坐标 public void addHeart(int x, int y, int position) { mX = x; mY = y;...AnimatorSet(); mFlyAnimator.playSequentially(flyDownAnim, flyInAnim); mFlyAnimator.start(); } 这样一来纸飞机进入点击离开动画就完成了

    1K20

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

    主要介绍了APPBarLayoutCollapsingToolbarLayout基本用法,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

    Android开发之漫漫长途 XVII——动画(续)

    ---- 前言 一篇文章呢,我们说了关于View动画那些事,这里也在总结一下,使用View动画时需要注意以下4点:(更多详情请参看我一篇博客。)...(obj,"translationY",100); XML实现(属性动画XML描述语法固定格式) <set xmlns:android="http://schemas.android.com/apk...属性动画<em>的</em>进阶 我们先来看一个需求:要求对一个Button做动画,要求让其宽度<em>从</em>原始宽度增加到500px。...AnimatorUpdateListener<em>和</em><em>AnimatorListener</em> 属性动画<em>的</em>监听器AnimatorUpdateListener<em>和</em><em>AnimatorListener</em> AnimatorUpdateListener...,动画每播放一帧,onAnimationUpdate就被调用一次, 下面就来看一下<em>如何</em>使用上面的属性动画<em>的</em>监听器来实现属性动画 mButton = (Button) findViewById(R.id.button

    27510

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

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

    41010

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

    第二:playSequentially只有上一个控件做完动画以后,才会激活下一个控件动画,如果一控件动画是无限循环,那下一个控件就别再指望能做动画了。...AnimatorSet.Builder : //调用AnimatorSet中play方法是获取AnimatorSet.Builder对象唯一途径...GIF14.gif AnimatorSet监听器 因为ValueAnimatorAnimatorSet都派生自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处选择需要信息列,点击ResultsGO进行数据下载 ? ?...将上述下载两个文件分别命名为 GRCh38.gene.bed GRCh38.TFmotif_binding.bed ,在Shell中查看一下: 基因组中每个基因所在染色体、位置信息,以及对应

    8.5K40

    如何在CentOS 7安装配置GrafanaZabbix绘制漂亮图形

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

    6K10

    Android动画工具类封装实战记录

    思路 既然要做动画,肯定是要做属性动画工具类封装了,由于补间动画逐帧动画并不能改变目标动画主题实际属性,在Android开发中已经越来越少人去用这两个动画框架做开发了,而属性动画则相对越来越广泛使用在开发过程中了...,然后是playwith同时执行,最后执行before。...,我思路是,其实最后就是对执行方式封装,所谓执行方式就是如何正常调用play,playSequentiallyplayTogether三个方法,这里需要合理封装。...} }); Animator.AnimatorPauseListener 对于该动画暂停播放监听 new Animator.AnimatorPauseListener() { @Override...* 我们注意到他是先执行after,然后是playwith同时执行,最后执行before。 * 所以大家记住这个顺序,无论怎么写,都是这个执行顺序。

    1K20

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

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

    1.4K20

    在 View 使用挂起函数

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

    2.3K30

    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

    23020

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

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

    1.4K31

    Android属性动画之ValueAnimator代码详解

    上面使用imageView.setTranslationY((Float) animation.getAnimatedValue())来动态改变图片translationY属性,需要说明是,如果在低版本中...2、估值器插值器 对于给定一个范围值,例如上面例子中ValueAnimator.ofFloat(0, 500),它给定变化范围为[0, 500],那么在这个范围内到底是如何变化呢?...我们知道插值器作用就是返回当前属性改变百分比,这个百分比我们可以通过重写getInterpolation来自定义。其实真正变化后值是估值器来得到。...所以我们如果希望自定义变化值变化快慢,我们需要自定义一个插值器一个估值器,插值器是为估值器服务,估值器是为我们服务,因为它最终返回了变化后值。 最后,我们如何得到这个变化后值呢?...ValueAnimator对象中使用getAnimatedValue函数我们就可以获取到变化后那个值,拿到这个变化后值之后我们就可以动态更新对象属性值了。

    1.6K30

    【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实现图片在屏幕内缩放移动效果

    通常我们遇到图片缩放需求,都是图片基于屏幕自适应后,进行缩放移动,且图片最小只能是自适应大小。最近遇到一个需求,要求图片只能在屏幕内缩放移动,不能超出屏幕。...可以系统中读取图片(通过绝对路径),也可以资源文件中读取图片。 ? 二、自定义ZoomImageView 屏幕内手势缩放图片与普通图片缩放相比,比较麻烦是,需要计算图片精确位置。...在写这个类时,发现一些网上说法不一样地方。 options.inSampleSize这个属性,网上说法是必须是2幂次方,但实际,我验证结果是所有的整数都可以。...这里采用压缩方法是,获取系统剩余内存图片大小,然后将图片压缩到合适大小。...当然,系统读取图片需要添加读写权限,这个不能忘了。而且6.0以上系统需要动态获取权限。动态获取权限方法这里就不介绍了,网上有很详细说明。 五、最终效果 ?

    1.4K30

    Android 中Notification弹出通知实现代码

    NotificationManager 是一个系统Service,可通过getSystemService(NOTIFICATION_SERVICE)方法来获取 接下来我想说是android5.0 后弹出通知...);//获取状态栏通知管理类(负责发通知、清除通知等操作) //第三步:设置通知栏PendingIntent(点击动作事件等都包含在这里): Intent push =new Intent(MainActivity.this...notification 进入到activity, 使用到pendingIntent类方法,PengdingIntent.getActivity()第二个参数,即请求参数,实际是通过该参数来区别不同...在安全锁没有锁屏情况下显示通知*/ .setVisibility(Notification.VISIBILITY_PUBLIC) .setPriority(Notification.PRIORITY_DEFAULT...builder.build();//得到一个Notification对象 mNotifyMgr.notify(1,notify);//发送通知请求 }  但上面的做法并不能在android5.0以下设备使通知弹出

    4.1K31
    领券