在这里爱游戏app体育官方在美国,我们的客户依赖我们帮助他们可靠地管理他们的社交媒体内容。爱游戏官网皇爱游戏体育官网首页Sprout客户使用我们的移动iOS和Android应用程序,因此他们可以随时管理自己的社交媒体。爱游戏官网皇当我们决定更新Android消息撰写体验时出版多张图片附加到一个Tweet,我们想让用户清楚,当多张图片附加,即使在撰写屏幕上不可见。

设计方案:使用动画来表示屏幕外的图像

考虑到我们的设计和移动屏幕的限制,附加的图像可以驻留在屏幕之外。虽然这并不理想,但考虑到Compose屏幕上支持的功能密度,这是必要的让步。对于图像实际上不在屏幕上的情况,我们决定实现一个水平“反弹”动画,这将表明图像列表是可滚动的。

实现选择:ObjectAnimator + EasingInterpolator

Android中有许多支持基本动画的机制。有些要求在代码中配置,有些要求在xml中配置。在选择备选方案时,我们决定优先考虑向后兼容性(我们支持sdk 15+版本)、实现的简单性和可配置性。最终,我们决定使用的组合ObjectAnimator而且EasingInterpolator.这两者都可以在Java代码中配置,最终对开发人员更友好:语法很熟悉,动画逻辑可以在代码库中的一个位置完全定义。

ObjectAnimator是Android框架提供的一个类,允许修改视图的属性。因为在我们的用例中,ObjectAnimator的默认插值器的移动感觉不自然,所以我们决定使用EasingInterpolator,这是一个方便的库,提供了许多不同的插值模型。

android-bounce-animation-easing-sample

弹跳动画代码

private void doBounceAnimation(查看targetView) {ObjectAnimator animator = ObjectAnimator。ofFloat(targetView, "translationX", 0,25,0);动画师。setInterpolator(新EasingInterpolator (Ease.ELASTIC_IN_OUT));animator.setStartDelay (500);animator.setDuration (1500);animator.start ();}

幸运的是,处理这种行为的代码非常简洁。在第1行中,我们指定了如何使targetView动画化。在这种情况下,我们想要修改targetView的“translationX”属性,这是视图在布局后的x位置。我们希望从初始位置的0dp偏移量到向右25dp偏移量,并最终返回到0dp的原始偏移量。

在第2行中,我们指定了我们想要的插值类型。我们尝试了不同的插值模型,但最终还是选择了Ease。ELASTIC_IN_OUT最适合我们的用例。

爱游戏体育官网首页爱游戏app体育官方萌芽社会Android反弹动画在撰写

有关在Android中支持属性动画的更多信息,请查看动画开发文档

动态动画

我们对手机Compose体验的更新感到非常高兴。展望未来,我们计划继续通过响应式视觉界面丰富我们的移动体验。有兴趣和我们一起研究这些东西吗?来与我们合作加入我们的Android移动团队!