问题标签 [viewpropertyanimator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
455 浏览

android - 使用 ViewCompat 时出现 StackOverflowError

我正在使用viewCompat以兼容我的动画以降低 api (10)。

但是当我在模拟器上部署它时,我得到了StackOverflowError

这是我的代码:

这是错误:

如您所见,错误返回到onAnimationEnd代码部分。

0 投票
2 回答
921 浏览

java - ViewPropertyAnimator - 动画不会第一次发生

我将以下代码用于AppBarLayout.

除了第一次showToolbar(true)调用显示工具栏外,动画效果很好。该视图第一次显示时没有动画。我已经搜索了该站点并发现了类似的问题,但这些解决方案似乎对我不起作用。

可能值得注意的是,这仅在我们希望appBar首先隐藏时才会发生。我的猜测是,也许动画

更新1:

更新 2

我删除了isViewWithinScreenBounds()方法,因为实际上并不需要该检查。

0 投票
0 回答
361 浏览

java - 使用 ItemTouchHelper.SimpleCallback 在 RecyclerView 后面的视图上的属性动画

我正在尝试在基本上位于我的 RecyclerView 后面的视图上实现动画。我正在使用 ItemTouchHelper.SimpleCallback 类来获取 RecyclerView 上的运动事件并覆盖回调方法onChildDraw()以传播动画。

这个动画基本上是由用户滑动手势控制的。所以这是我的问题。

我在卡片视图上有一个带有电子邮件内容的 RecyclerView。该卡片视图下方的屏幕左侧和右侧有两个图像。此链接内的图像中显示了类似这样的内容:

RecyclerView 内的 CardView 与卡片视图后面的左右图像

最初,红色和粉红色图像是不可见的,并且将在白色卡片视图上的滑动量上进行动画处理。现在,当我在左侧和右侧的白色卡片视图上滑动时,红色和粉红色的图像将按比例显示,alpha 动画。缩放动画从 0.8 开始,alpha 动画从 0 到 255 开始。当这两个动画结束时,红色和粉色图像将朝滑动方向平移。

这是我的代码:

下面是我从上面的类中获取回调的活动代码:

在上面的代码中,我试图根据用户在白卡视图上的滑动量为红色和粉色图像设置动画。但我真的陷入了基于“dX”的计算中,无法弄清楚如何计算动画的值。

注意:- 当用户在卡片上从左到右滑动时,红色图像应该是动画的,当用户在卡片上从右到左滑动时,粉红色图像应该是动画的。动画最初将包含缩放和 alpha 动画,当两个动画完成时,红色或粉色图像将开始向滑动方向平移。

谁能帮我计算基于用户滑动的动画值。如果您对此问题有任何疑问,请提出。我真的陷入了这个问题,并且在网络上的任何地方都没有解决方案。

任何帮助将不胜感激。提前致谢。

0 投票
1 回答
656 浏览

android - 为什么在视图上运行第二个 viewpropertyanimation 会破坏动画侦听器?

我有一个奇怪的问题,我的 onAnimationEnd 被反复调用(因此即使我没有明确调用它,我的动画也会一遍又一遍地运行)。

这是正在发生的事情的屏幕录像:https ://youtu.be/TfGiLvwLdBM

以下是我的代码:

使用相应的xml:

0 投票
1 回答
233 浏览

android - 带有 ViewPropertyAnimator 的工具栏动画第二次不起作用

第一次工具栏动画效果很好,工具栏动画成功退出屏幕。

问题:工具栏上的动画在单击任何视图时不起作用,工具栏不会通过动画重新出现在屏幕上。

活动的xml代码:

工具栏代码是:

活动代码:在onCreate中,这会隐藏状态栏、导航栏和工具栏

下面是有问题的代码,工具栏不会通过动画重新出现点击任何视图(OnClickListener 已在视图上设置)

0 投票
0 回答
534 浏览

android - ObjectAnimator 如何重用或继续带有值的动画

我正在使用 ObjectAnimator 为谷歌地图中的标记设置动画,但我想重用 ObjectAnimator 或在收到新位置时继续动画我使用它就像

我以 1 秒的间隔调用此方法

0 投票
0 回答
656 浏览

android - ViewPropertyAnimator 将动画翻译成View 后,相对布局会产生空白空间?

我想要一个动画效果,就像在 YouTube 或 Gmail 应用程序中一样。向下滚动时,顶部栏在屏幕上线的外侧平移,反之亦然。但我的情况略有不同,我的屏幕布局如下:

在此处输入图像描述

关于上面的屏幕布局:

  1. 视图 0有一些文本显示区域。

  2. 视图 1在视图 3 内的列表视图的向上滚动时预计在视图 0 后面翻译

  3. 视图 2也将在视图 3 中同一列表视图向上滚动事件的视图 0 的上方和下方进行转换,但此时它将在视图 0 下方的屏幕上保持可见,此时视图 1 将完全隐藏在视图 0 后面。

  4. 视图 3是包含区域的列表视图,即使在视图 2 向上翻译之后,它也应该低于视图 2。

幸运的是,我看到了这篇文章,它完成了我想要实现的完全相同的事情,根据我的要求进行了少量大小调整它同时拥有 View 1 和 2,但只有 View 1 的高度,导致 View 2 在 View 0 下方保持可见。

现在我在这里面临的问题是在翻译时,在视图 1 和视图 2 的原始位置创建了新的空白区域。如下面的屏幕所示:

在此处输入图像描述

实际上,所有 View 0 到 3 都是相对布局,它们是在也是相对布局的父级中定义的。View 3 在 View 2 下方具有属性。但是在平移动画后 View 3 停留在它开始时的位置,只有 View 2 向上移动。

我尝试将 View 3 作为平移动画的一部分,在这种情况下,它会随着 View 2 向上移动,但在其底部(View 3)会留下空白区域。为什么会发生这种情况?即使在动画之后,我应该怎么做才能将 View 3 保持在 View 2 以下?

这是我关注的文章:https ://rylexr.tinbytes.com/2015/04/27/how-to-hideshow-android-toolbar-when-scrolling-google-play-musics-behavior/

ViewPropertyAnimator 的 Android 博客: https ://android-developers.googleblog.com/2011/05/introducing-viewpropertyanimator.html

我为这个解决方案搜索了很多我尝试了不同的东西但没有任何效果最后我想我应该发布问题,以便如果任何已经遇到过此类问题的人可能会有帮助。

感谢您阅读这个巨大的问题。

这是代码:

XML

Java 代码:

在回收站视图上滚动监听器:

辅助功能:

0 投票
0 回答
347 浏览

android - ValueAnimator 不会正确地使可绘制对象无效

我正在尝试为 Android 应用创建自定义进度条。我创建了一个带有路径和两个同心圆的drawable。这个想法是红色部分将填满圆的圆周,当它接近 0 度标记时,它将再次重新启动。问题是圆圈很好地填满了它应该如何,但它没有重新启动。控制这种行为的是一个 ValueAnimator,它以某种方式使驻留在图像视图上的可绘制对象无效。这是drawable应该尝试完成的图片。在此处输入图像描述

我已尽力调整此 Value-Animator 的代码,但它并没有做应该做的事情。这是 Value-Animator 的代码:

现在,ProgressShow 是可绘制类的名称,ProgressShow.sweepAngle 是绘制路径时在 onCanvas 方法中使用的变量。它的用法如下:

sweepAngle 变量在 ValueAnimator 的 onAnimationUpdate 方法中不断变化。

任何想法为什么红环在 360 度附近停止,当它应该基于 ValueAnimator 的性质是无限重复计数和重新启动的重复模式时重新启动。

感谢您的建议

0 投票
1 回答
997 浏览

android - 多个 ViewPropertyAnimator

希望我不是在这里重复一个问题;我找不到一个关于 multipleViewPropertyAnimators的。目标是让视图在 8 秒内从 y1 动画到 y2。在第一秒淡出,然后在最后一秒淡出。

这是我在我的活动中尝试过的onCreate()

但是,结果是从 0 到 800 的转换,以及从 0 到 1 的 alpha 都在一秒钟内完成。然后 6 秒后视图淡出。每次我调用 View.animate() 时,它看起来都会返回相同的 ViewPropertyAnimator。有没有办法让我拥有多个?我正在考虑为视图的 alpha 设置动画,将视图嵌套在相对布局中,然后为相对布局翻译设置动画。如果没有必要,我宁愿不走那条路。有谁知道更好的解决方案?

0 投票
1 回答
135 浏览

android - ViewPropertyAnimator 弄乱了视图布局位置

我创建了一个按钮,使用顶部和左侧边距设置位置并添加到布局中。如果我只是这样做,按钮就位于正确的位置。

现在我需要添加一个翻译动画,我正在使用viewPropertyAnimator. 不幸的是,这会使初始按钮位置无效,使动画从 (0, 0) 开始。

以下是我写的代码。

有人知道我在哪里做错了吗?