如何创建像 Instagram 应用一样的动画背景渐变?

Posted

技术标签:

【中文标题】如何创建像 Instagram 应用一样的动画背景渐变?【英文标题】:How to create animated background gradient like Instagram app? 【发布时间】:2016-05-28 03:30:30 【问题描述】:

以下是 Instagram 应用的截图。背景不断从一个渐变转换为另一个非常漂亮。

我想知道如何实现这一点。是否有任何代码可以自动为渐变设置动画,或者我是否需要添加具有轻微变化的不同渐变,如果我使用它不会导致 Instagram 出现任何版权问题?我曾尝试使用多个渐变文件制作动画,使用 Frame Animation 略有变化,但它不平滑且效果不佳。谢谢

【问题讨论】:

你可以按照我的要点gist.github.com/deepak786/12eee8412fa7914a16774ce546e1a089 @DeepakGoyal 如果我也想在第二个活动中继续这个颜色变化动画我应该怎么做......就像 Instagram 如果我们切换到登录登录颜色变化动画继续! @RuchaBhatt 您还需要在第二个活动中应用此动画。但是如果想将相同的动画继续到另一个活动,您可以尝试使用片段并将动画提供给片段活动。这样,如果您更改片段,您的动画仍然会继续。 @DeepakGoyal 但是如果我想继续这个动画并且我正在使用所有准备好的活动我不能切换到任何其他解决方案的片段?谢谢您的回复。 :) 【参考方案1】:

创建一个 TransitionDrawable 以在用于背景的两个可绘制对象之间进行切换。

<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- use whatever drawables you want, gradients, shapes etc-->
    <item android:drawable="@drawable/start" />
    <item android:drawable="@drawable/end" />
</transition>

Transition Drawables in Android

TransitionDrawable trans = (TransitionDrawable) myLayout.getBackground();
trans.startTransition(2000);

【讨论】:

这正是我想要的。谢谢。 但是如何重复呢?因为它以眨眼效果结束。 java.lang.ClassCastException: android.graphics.drawable.GradientDrawable cannot be cast to android.graphics.drawable.TransitionDrawable 也许这会有所帮助:link

以上是关于如何创建像 Instagram 应用一样的动画背景渐变?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iphone 中使用 avFoundation 像 Instagram 应用一样拍摄方形照片?

如何制作像 Instagram 故事个人资料图像一样的圆形图像

如何使用单个 UITableView 设计像 instagram 一样的时间线?

像 Instagram iPhone 应用程序一样向右滑动时导航弹出视图。我如何实现这一点?

如何像 instagram 一样快速加载图像

如何制作像 Instagram 一样的导航栏