Android-Notes|BottomNavigationView-爱上-Lottie,kotlin声明数组

本文介绍了如何在Android中使用Lottie为BottomNavigationView的各个选项添加动态切换动画,包括导入Lottie文件,封装枚举类,处理深色模式,设置布局,初始化BottomNavigationView以及处理菜单项的长按提示。此外,还解决了BottomNavigationView选中项不更新动画的问题,以及禁用长按提示的方法。
摘要由CSDN通过智能技术生成
  • selected: 选中才显示标题;
  • labeled: 标题一直显示;
  • unlabeled: 只显示 icon,不显示标题。

2. Lottie

对于这个东东,不知道说啥。忽略吧。

想起来都是累,韩总让我自己折腾 Lottie json 文件。哭唧唧

安利一个在线编辑 Lottie json 文件的地址:

实战部分

Step 1:导入提供的 Lottie Json 文件

新建 assets 目录,这里我做了 Android 10 深色兼容,所以需要提供深色(暗黑)模式下 Lottie 文件。

老渣男,给我的素材用不了,害我借用别人家的 App Lottie 素材。

Step 2:定义 Lottie 枚举类并封装基础数据:

enum class LottieAnimation(val value: String) {
// 截取「喜马拉雅」App Lottie 素材

HOME(“lottie/bottom_tab_home_page_btn.json”),
SUBSCRIBE(“lottie/bottom_tab_my_listen_btn.json”),
DISCOVERY(“lottie/bottom_tab_finding_btn.json”),
ACCOUNT(“lottie/bottom_tab_mine_btn.json”),

HOME_NIGHT(“lottie-night/bottom_tab_home_page_btn.json”),
SUBSCRIBE_NIGHT(“lottie-night/bottom_tab_my_listen_btn.json”),
DISCOVERY_NIGHT(“lottie-night/bottom_tab_finding_btn.json”),
ACCOUNT_NIGHT(“lottie-night/bottom_tab_mine_btn.json”)
}
复制代码

封装个 BasicData,存放 App 内置的一些基本数据,这里主要针对 Lottie 文件:

val mNavigationAnimationList = arrayListOf(
LottieAnimation.HOME,
LottieAnimation.SUBSCRIBE,
LottieAnimation.DISCOVERY,
LottieAnimation.ACCOUNT
)

val mNavigationAnimationNightList = arrayListOf(
LottieAnimation.HOME_NIGHT,
LottieAnimation.SUBSCRIBE_NIGHT,
LottieAnimation.DISCOVERY_NIGHT,
LottieAnimation.ACCOUNT_NIGHT
)
复制代码

Step 3:导入对应依赖,新增 Lottie Utils

api ‘com.google.android.material:material:1.2.0’
api ‘com.airbnb.android:lottie:3.4.1’
复制代码

工具类方法:

/**

  • 获取 Lottie Drawable
    */
    fun getLottieDrawable(
    animation: LottieAnimation,
    bottomNavigationView: BottomNavigationView
    ): LottieDrawable {
    return LottieDrawable().apply {
    val res

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

ult = LottieCompositionFactory.fromAssetSync(
bottomNavigationView.context.applicationContext, animation.value
)
callback = bottomNavigationView
composition = result.value
}<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值