Spark - 创建类似于 Instagram&Spotify App 的登录界面的动态渐变背景

https://github.com/TonnyL/Spark

截图

spark.gif

用法

private lateinit var mSpark: Spark

override fun onCreate(savedInstanceState: Bundle?) {
    // ...

    mSpark = Spark.Builder()
            .setView(frameLayout) // View or view group
            .setDuration(4000)
            .setAnimList(Spark.ANIM_GREEN_PURPLE)
            .build()

}

override fun onResume() {
    // ...
    mSpark.startAnimation()
}

override fun onPause() {
    // ...
    mSpark.stopAnimation()
}

安装

Gradle

  • 将下面的代码添加到根 build.gradle 文件中:
repositories {
    maven { url "https://jitpack.io" }
}
  • 将下面的代码添加到 module 的 build.gradle 文件中:
dependencies {
    implementation 'io.github.tonnyl:spark:x.y.z'
}

Maven

<dependency>
  <groupId>io.github.tonnyl</groupId>
  <artifactId>spark</artifactId>
  <version>x.y.z</version>
  <type>pom</type>
</dependency>

自定义渐变色列表

创建渐变 drawable

purple_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <gradient
        android:centerColor="#e459aa"
        android:endColor="#cd7be6"
        android:startColor="#f14589"
        android:type="linear" />

    <corners android:radius="0dp" />

</shape>

yellow_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <gradient
        android:centerColor="#F4A37B"
        android:endColor="#F08875"
        android:startColor="#F9CB87"
        android:type="linear"/>

    <corners android:radius="0dp" />

</shape>

创建动画列表

custom_anim_list.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">

    <item
        android:drawable="@drawable/yellow_drawable"
        android:duration="4500" />

    <item
        android:drawable="@drawable/purple_drawable"
        android:duration="4500" />

</animation-list>

应用动画列表

mSpark = Spark.Builder()
        // ...
        .setAnimList(R.drawable.custom_anim_list) // Your custom animation 
        // ...

致谢

Designed by Alexander Zaytsev.

Sketch_Gradients.png

许可证

MIT


Tonny的开发之路
talk is cheap, show me the code.
228 声望
14 粉丝
0 条评论
推荐阅读
探索 Android Design Support Library v28 新增内容
Android Support Library v28 版本最近被宣布推出 -- 在当前的 alpha 版本中, 我们又有了一系列令人兴奋的新组件. 在这篇文章中, 我想要看看以 Material 视图组件形式添加进入 Support Library 的新增部分.

Tonny2阅读 3.4k

程序员英语学习指南
动机为什么程序员要学习英语?工作:我们每天接触的代码都是英文的、包括很多技术文档也是英文的学习:最新最前沿的技术最开始都是只有English版本就业:学好英语让你的就业范围扩大到全球,而不只限于国内目标读...

九旬6阅读 618

安卓逆向之破解某成人APP播放次数限制
某成人水果APP非VIP用户存在播放次数限制,每天只能播放3次。超过3次需要购买VIP。 由于过于贫穷,于是抽空,对其安卓APP进行了逆向分析,最终成功破解了其播放次数限制。

悖论3阅读 1.2k评论 3

封面图
这一次,解决Flutter Dialog的各种痛点!
4.0版本做了重大调整,迁移请参照: SmartDialog 3.x 迁移 4.0本文内容已更新,文中内容及其代码皆为4.0用法前言Q:你一生中闻过最臭的东西,是什么?A:我那早已腐烂的梦。兄弟萌!!!我又来了!这次,我能自信...

小呆呆6661阅读 3.4k

封面图
uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现
如果想要做一个app的话,可以有很多种选择方案,uni-app是其中的一个性价比高一些(坑多一些)的方案。本文记录一下,uni-app打安卓包以后,需要检查并下载更新,且显示进度条的功能。

水冗水孚2阅读 729

Flutter 让你的Dialog脱胎换骨吧!(Attach,Dialog,Loading,Toast)
4.0版本做了重大调整,迁移请参照: SmartDialog 3.x 迁移 4.0本文内容已更新,文中内容及其代码皆为4.0用法前言Q:你一生中闻过最臭的东西,是什么?A:我那早已腐烂的梦。兄弟萌!!!我又来了!这次,我能自信...

小呆呆6662阅读 2.3k

封面图
2022 年终总结|致敬即将过去的,匆忙而又虐心的一年...
本文参与了 SegmentFault 思否年度征文「一名技术人的 2022」,欢迎正在阅读的你也加入。 时间,总是过的这么快,快得让人猝不及防,眨眼又是一年的末...似乎儿时的文章中,对于时间的流逝,描述的最多的便是:白...

贺biubiu1阅读 1.3k

封面图
228 声望
14 粉丝
宣传栏