2024年最全Android 中的 Lottie 动画入门_android lottie动画,flutter面试题

学习分享,共勉

Android高级架构师进阶之路

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人

  • Android进阶知识体系学习脑图

  • Android进阶高级工程师学习全套手册

  • 对标Android阿里P7,年薪50w+学习视频

  • 大厂内部Android高频面试题,以及面试经历

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

            setFooter(
                isLeftVisible = true,
                isRightVisible = true
            )
            setStepContent(header = "1\. Maintain Social Distancing!", lottieAnimationFile = "social_distancing.json")
        }
        2 -> {
            setFooter(
                isLeftVisible = true,
                isRightVisible = true
            )
            setStepContent(header = "2\. Stay Home, Stay Safe!", lottieAnimationFile = "stay_safe.json")
        }
        3 -> {
            setFooter(
                isLeftVisible = true,
                isRightVisible = true
            )
            setStepContent(header = "3\. Wash/Sanatize your hands!", lottieAnimationFile = "sanatize.json")
        }
        4 -> {
            setFooter(
                isLeftVisible = true,
                isRightVisible = false
            )
            setStepContent(header = "4\. Learn/Upgrade your skill set!", lottieAnimationFile = "learn.json")
        }
    }
}

private fun setStepContent(header: String, lottieAnimationFile: String) {
    tv_headline.text = header
    lav_main?.apply {
        setAnimation(lottieAnimationFile)
        repeatCount = 5
        playAnimation()
    }
}

private fun setFooter(
    isLeftVisible: Boolean,
    isRightVisible: Boolean
) {
    lav_click_left?.apply {
        visibility = if (isLeftVisible) View.VISIBLE else View.GONE
    }
    lav_click_right?.apply {
        visibility = if (isRightVisible) View.VISIBLE else View.GONE
    }

}

}


### 理解示例中的逻辑


* 此示例显示了在 Covid-19 隔离期间需要遵循的基本步骤。
* 默认情况下(在初始启动时),左箭头视图可见性设置为 GONE,因为用户尚未开始导航
* 我们在 MainActivity.kt 文件中维护一个名为“count”的变量,初始化为零。
* 我们正在通过处理左右箭头的点击来更新 count 的值、左右按钮的可见性、文本视图和 LottieAnimation 视图的内容更改



lav_click_right.setOnClickListener {
count++
showStep(count = if (count > 4 ) 4 else count)
}
lav_click_left.setOnClickListener {
count–
showStep(count = if (count < 0 ) 0 else count)
}


* 使用更新的计数参数调用showStep方法。此方法在内部调用 setStepContent 和 setFooter 方法来更新 UI



private fun showStep(count: Int)


* setStepContent方法有助于设置标题(文本视图)的值并更新 Lottie 动画视图



private fun setStepContent(header: String, lottieAnimationFile:String)


* setFooter方法有助于处理左右箭头



private fun setFooter(isLeftVisible: Boolean,isRightVisible:Boolean)


我们现在都准备好了代码。让我们在任何设备上运行这个应用程序,看看 Lottie Animation 是如何工作的!


### LottieAnimationViews 属性


LottieAnimation 视图有很多属性,我们可以通过这些属性控制视图的动画。项目中使用的一些是


* “lottie\_autoPlay” 布尔值,用于控制自动播放功能



app:lottie_autoPlay=“true”


* “lottie\_loop” 布尔值,用于控制动画的循环



app:lottie_loop=“false”


* “lottie\_speed” 浮动控制动画的速度



app:lottie_speed=“1”


### 接下来是什么?


您可以克隆此项目并尝试以下操作:


* 涉及到一些业务逻辑。所以你可以为这个项目定义一个架构
* 您可以在 Covid-19 隔离期间添加更多要遵循的步骤
* 您可以即兴创作 UI
* 您可以探索 LottieAnimationViews 的不同属性并学习以编程方式设置它们,以保持应用程序动态
* 还有很多…


### 最后


如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。


如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/06e41b3932164f0db07014d54e6e5626.png)  
 相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。


#### 一、架构师筑基必备技能


1、深入理解Java泛型  
 2、注解深入浅出  
 3、并发编程  
 4、数据传输与序列化  
 5、Java虚拟机原理  
 6、高效IO  
 ……


![在这里插入图片描述](https://img-blog.csdnimg.cn/079bc2315e7e4f73b8fe703c3c51ae8d.png)


#### 二、Android百大框架源码解析


1.Retrofit 2.0源码解析  
 2.Okhttp3源码解析  
 3.ButterKnife源码解析  
 4.MPAndroidChart 源码解析  
 5.Glide源码解析  
 6.Leakcanary 源码解析  
 7.Universal-lmage-Loader源码解析  
 8.EventBus 3.0源码解析  
 9.zxing源码分析  
 10.Picasso源码解析  
 11.LottieAndroid使用详解及源码解析  
 12.Fresco 源码分析——图片加载流程


![在这里插入图片描述](https://img-blog.csdnimg.cn/2206daa6ec0b4bdfb0ea7a908d1249e4.png)


#### 三、Android性能优化实战解析


* 腾讯Bugly:对字符串匹配算法的一点理解
* 爱奇艺:安卓APP崩溃捕获方案——xCrash
* 字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
* 百度APP技术:Android H5首屏优化实践
* 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
* 携程:从智行 Android 项目看组件化架构实践
* 网易新闻构建优化:如何让你的构建速度“势如闪电”?
* …


![在这里插入图片描述](https://img-blog.csdnimg.cn/2139f00c8fc74031b9fd38257c96c22e.png)


#### 四、高级kotlin强化实战


1、Kotlin入门教程  
 2、Kotlin 实战避坑指南  
 3、项目实战《Kotlin Jetpack 实战》


* 从一个膜拜大神的 Demo 开始
* Kotlin 写 Gradle 脚本是一种什么体验?
* Kotlin 编程的三重境界
* Kotlin 高阶函数
* Kotlin 泛型
* Kotlin 扩展
* Kotlin 委托
* 协程“不为人知”的调试技巧
* 图解协程:suspend


![在这里插入图片描述](https://img-blog.csdnimg.cn/d05bd9ae3a9e481fa317022bfe161c7d.png)


#### 五、Android高级UI开源框架进阶解密


1.SmartRefreshLayout的使用  
 2.Android之PullToRefresh控件源码解析  
 3.Android-PullToRefresh下拉刷新库基本用法  
 4.LoadSir-高效易用的加载反馈页管理框架  
 5.Android通用LoadingView加载框架详解  
 6.MPAndroidChart实现LineChart(折线图)  
 7.hellocharts-android使用指南  
 8.SmartTable使用指南  
 9.开源项目android-uitableview介绍  
 10.ExcelPanel 使用指南  
 11.Android开源项目SlidingMenu深切解析  
 12.MaterialDrawer使用指南  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f1905585c6d346a8b0a8fefcfa553bc4.png)


#### 六、NDK模块开发


1、NDK 模块开发  
 2、JNI 模块  
 3、Native 开发工具  
 4、Linux 编程  
 5、底层图片处理  
 6、音视频开发  
 7、机器学习


![在这里插入图片描述](https://img-blog.csdnimg.cn/5189e2cd65474b8c8d4612139d533e72.png)


#### 七、Flutter技术进阶


1、Flutter跨平台开发概述  
 2、Windows中Flutter开发环境搭建  
 3、编写你的第一个Flutter APP  
 4、Flutter开发环境搭建和调试  
 5、Dart语法篇之基础语法(一)  
 6、Dart语法篇之集合的使用与源码解析(二)  
 7、Dart语法篇之集合操作符函数与源码分析(三)  
 …  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/86c2b50cef934515b87206ff57e6aa07.png)


#### 八、微信小程序开发


1、小程序概述及入门  
 2、小程序UI开发  
 3、API操作  
 4、购物商场项目实战……


![在这里插入图片描述](https://img-blog.csdnimg.cn/f73be8e6f20743238bcf9d3752107d4e.png)


#### 全套视频资料:


**一、面试合集**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4f54728150894ebcb33d7d4b57501cae.png)  
 **二、源码解析合集**


![在这里插入图片描述](https://img-blog.csdnimg.cn/eb777d5535da42099b8884182bd271d7.png)  
 **三、开源框架合集**


![在这里插入图片描述](https://img-blog.csdnimg.cn/103933b5a4434cf08fa230a193baaca9.png)  
 **欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取【保证100%免费】↓↓↓**




## 总结

首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。

另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。

之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。

下一步还是要查漏补缺,进行针对性复习。

**最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!**
![](https://img-blog.csdnimg.cn/img_convert/cc886db3c0330b4cdf2d18242ee72a87.webp?x-oss-process=image/format,png)

![](https://img-blog.csdnimg.cn/img_convert/f3a4f8c20f026a559145b9584d6b6747.webp?x-oss-process=image/format,png)

![](https://img-blog.csdnimg.cn/img_convert/29026cc7daa21cc77613e36f379b1b2f.webp?x-oss-process=image/format,png)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

转存中...(img-dE3mzAvS-1715114425079)]

[外链图片转存中...(img-DQctdraP-1715114425079)]

[外链图片转存中...(img-WGTwsri0-1715114425080)]




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值