Android MotionLayout:以最简单的方式创建类似Twitter的“福师大APP”的启动动画
简介✍️
Twitter作为国外流行的交流软件,它的启动画面非常经典。现在,使用Android Jetpack库中的新布局MotionLayout可以比以往更轻松地实现出类似的初始动画。这就是我将在本文中创建的内容:基于Motionlayout实现类似Twitter的福师大图标的启动动画。此外,我还将介绍有关MotionLayout的一些基础知识。
我将在这篇文章中实现如下的动画:
背景✍️
- MotionLayout是Android ConstraintLayout的子类,可让您非常轻松地为应用程序中的任何视图或布局设置动画。
- 虽然仍处于测试阶段,但尚未得到广泛采用,但是我已经可以想象到,稳定发行后人们会想到的独特的交互式动画!
什么是MotionLayout?快速介绍
简而言之,MotionLayout是一个ConstraintLayout允许您轻松在两个ConstraintSet之间进行转换的工具。
ConstraintSet包含每个视图的所有约束和布局属性。
Transition 指定要在其之间进行过渡的起始ConstraintSets。
将所有这些都放入MotionScene文件中,就可以拥有一个MotionLayout!
随着布局和动画变得越来越复杂,MotionScene也变得越来越复杂。
了解有关MotionLayout的更多信息:
MotionLayout上的Android官方开发人员指南
项目设置⚙️
要创建项目,请执行以下操作:
1.打开一个新项目。
2.选择一个空的Activity项目模板。这将创建一个带有操作栏的空白屏幕。
3.输入项目的名称,然后语言选择Kotlin。
4.单击完成。
5.运行项目以查看初始应用程序的外观
运行效果如下:
清理:
要删除工具栏,导航栏,状态栏和文本并向背景添加颜色,请执行以下操作:
- 打开styles.xml
- 将基础主题的父级从Theme.AppCompat.Light.DarkActionBar替换为Theme.AppCompat.Light.NoActionBar。(如果您此时运行该应用程序,将会看到操作栏/工具栏消失了)
- 通过将android:windowFullscreen设置为true(隐藏状态栏)并将android:background设置为默认颜色,为您的应用添加新的自定义设置
<resources><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item><item name="android:windowFullscreen">true</item><item name="android:background">@color/colorPrimary</item></style>
</resources>
4.打开activity_main.xml并从布局中删除TextView以删除“ Hello World!”文本。
5.现在,在MainActivity.kt中,添加以下行以隐藏系统导航栏(如果复制并粘贴这些行出现 Unresolved reference build errors,请单击未解决的对象,然后按Alt + Enter添加库):
override fun onWindowFocusChanged(hasFocus: Boolean) {super.onWindowFocusChanged(hasFocus)if (hasFocus) {hideSystemUIAndNavigation(this)}}private fun hideSystemUIAndNavigation(activity: Activity) {val decorView: View = activity.window.decorViewdecorView.systemUiVisibility =(View.SYSTEM_UI_FLAG_IMMERSIVE// Set the content to appear under the system bars so that the// content doesn't resize when the system bars hide and show.or View.SYSTEM_UI_FLAG_LAYOUT_STABLEor View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATIONor View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // Hide the nav bar and status baror View.SYSTEM_UI_FLAG_HIDE_NAVIGATIONor View.SYSTEM_UI_FLAG_FULLSCREEN)}
6.运行该应用程序。
现在,您基本上会看到一个空屏幕,以默认颜色作为背景:
添加福师大的校徽及设置其背景色:
在开始动画之前,我们只需要设置一些样式即可:红色背景及福师大校徽。
首先开始:
- 打开colors.xml
- 将colorPrimary和colorPrimaryDark更改为的红色。
- 将福师大校徽复制到drawable文件夹下。
- 打开activity_main.xml,然后将校徽设置为宽度和高度都为128dp的ImageView。
<ImageViewandroid:layout_width="128dp"android:layout_height="128dp"android:src="@drawable/fjnu"app:layout_constraintTop_toTopOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintBottom_toBottomOf="parent"/>
5.运行该应用程序,然后查看新更改。
添加动作
Android MotionLayout:以最简单的方式创建类似Twitter的“福师大APP”的启动动画相关推荐
- unity c 语言教程,程序丨Unity教程:如何用最简单的方式创建Simplex噪声?
原标题:程序丨Unity教程:如何用最简单的方式创建Simplex噪声? 翻译:刘甜甜(青悠) 审校:周伟杰 (Senser) 在本篇教程中,你将学会创建Value噪声与Perlin噪声的替代噪声,即 ...
- 【转】使用命令行方式创建和启动android模拟器
原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...
- android 摄像头比例,Android摄像头是全屏预览最简单的方式.doc
Android摄像头是全屏预览最简单的方式 Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏, ...
- 动态生成word文档原来如此简单!Aspose.Words助力以Java编程方式创建丰富的Word文档
近年来,Word文档的动态生成已成为组成报告,报价,发票和其他类型文档的流行功能.各种制造公司都基于数据库中存储的数据生成发票.在这种情况下,文档自动化可以节省手动文档创建过程中所需的时间,精力和资源 ...
- 平板android怎么升级版本,[原创]最简单的方式为华硕平板电脑EeePad TF101升级Android 3.1教程...
[原创]最简单的方式为华硕平板电脑EeePad TF101升级Android 3.1教程 (2011-06-23 22:43:52) 标签: 杂谈 Android 3.1上市了,华硕EeePad TF ...
- android滑动图形验证码,Android使用更简单的方式实现滑块拼图验证码功能
实现滑块拼图验证码功能之前已经写过一篇了,上一篇使用的是自定义控件的方式实现这个功能,主要还是想让童鞋们知其然更知其所以然,还没看的童鞋可以先看看Android实现滑块拼图验证码功能这篇. 在项目的开 ...
- Android的消息机制简单总结
参考文章: http://gityuan.com/2015/12/26/handler-message-framework/#next 参考资料: Android Framework的源码: Mess ...
- [置顶] Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite...
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...
- Android PC投屏简单尝试—最终章2
源码地址:https://github.com/deepsadness/AppRemote 上一章中,我们简单实现了PC的投屏功能. 但是还是存在这一些缺陷. 屏幕的尺寸数据是写死的 不能通过PC来对 ...
最新文章
- 加载Loader.bin
- jmh 基准测试_JMH:如何设置和运行JMH基准
- 线程run方法和start方法的区别
- MySQL 高级 ———— MySQL逻辑架构图简介
- javascript中作用域、全局作用域、局部作用域、隐式全局变量、块级作用域、作用域链、预解析
- 东北大学软件项目管理与过程改进_可视化看板——汽车研发项目管理成功的奥秘...
- Android 开发之旅:深入分析布局文件又是“Hello World!”
- Firefox扩展批量安装脚本
- 解决vue多个路由共用一个页面的问题
- expect脚本中,变量的写法
- go语言读取文件的方法-1
- 3Dmax建模教程详细步骤3D建模速成入门到高级教程 小白必看
- 设计模式:责任链模式
- ant-vue中的a-icon使用方法
- (ACWing yxc算法基础课)习题课1.1
- 中国行政区划数据下载
- linux shell获取同一网段存活主机的IP和MAC地址
- SpringBoot集成SpringMVC
- uniapp使用环信插件实现视频通话
- 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)
热门文章
原标题:程序丨Unity教程:如何用最简单的方式创建Simplex噪声? 翻译:刘甜甜(青悠) 审校:周伟杰 (Senser) 在本篇教程中,你将学会创建Value噪声与Perlin噪声的替代噪声,即 ...
原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...
Android摄像头是全屏预览最简单的方式 Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏, ...
近年来,Word文档的动态生成已成为组成报告,报价,发票和其他类型文档的流行功能.各种制造公司都基于数据库中存储的数据生成发票.在这种情况下,文档自动化可以节省手动文档创建过程中所需的时间,精力和资源 ...
[原创]最简单的方式为华硕平板电脑EeePad TF101升级Android 3.1教程 (2011-06-23 22:43:52) 标签: 杂谈 Android 3.1上市了,华硕EeePad TF ...
实现滑块拼图验证码功能之前已经写过一篇了,上一篇使用的是自定义控件的方式实现这个功能,主要还是想让童鞋们知其然更知其所以然,还没看的童鞋可以先看看Android实现滑块拼图验证码功能这篇. 在项目的开 ...
参考文章: http://gityuan.com/2015/12/26/handler-message-framework/#next 参考资料: Android Framework的源码: Mess ...
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...
源码地址:https://github.com/deepsadness/AppRemote 上一章中,我们简单实现了PC的投屏功能. 但是还是存在这一些缺陷. 屏幕的尺寸数据是写死的 不能通过PC来对 ...