简介✍️

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.运行项目以查看初始应用程序的外观

运行效果如下:

清理:

要删除工具栏,导航栏,状态栏和文本并向背景添加颜色,请执行以下操作:

  1. 打开styles.xml
  2. 将基础主题的父级从Theme.AppCompat.Light.DarkActionBar替换Theme.AppCompat.Light.NoActionBar。(如果您此时运行该应用程序,将会看到操作栏/工具栏消失了)
  3. 通过将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.运行该应用程序。

​ 现在,您基本上会看到一个空屏幕,以默认颜色作为背景:

添加福师大的校徽及设置其背景色:

在开始动画之前,我们只需要设置一些样式即可:红色背景及福师大校徽。

首先开始:

  1. 打开colors.xml
  2. colorPrimarycolorPrimaryDark更改为的红色。
  3. 将福师大校徽复制到drawable文件夹下。
  4. 打开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”的启动动画相关推荐

  1. unity c 语言教程,程序丨Unity教程:如何用最简单的方式创建Simplex噪声?

    原标题:程序丨Unity教程:如何用最简单的方式创建Simplex噪声? 翻译:刘甜甜(青悠) 审校:周伟杰 (Senser) 在本篇教程中,你将学会创建Value噪声与Perlin噪声的替代噪声,即 ...

  2. 【转】使用命令行方式创建和启动android模拟器

    原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...

  3. android 摄像头比例,Android摄像头是全屏预览最简单的方式.doc

    Android摄像头是全屏预览最简单的方式 Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏, ...

  4. 动态生成word文档原来如此简单!Aspose.Words助力以Java编程方式创建丰富的Word文档

    近年来,Word文档的动态生成已成为组成报告,报价,发票和其他类型文档的流行功能.各种制造公司都基于数据库中存储的数据生成发票.在这种情况下,文档自动化可以节省手动文档创建过程中所需的时间,精力和资源 ...

  5. 平板android怎么升级版本,[原创]最简单的方式为华硕平板电脑EeePad TF101升级Android 3.1教程...

    [原创]最简单的方式为华硕平板电脑EeePad TF101升级Android 3.1教程 (2011-06-23 22:43:52) 标签: 杂谈 Android 3.1上市了,华硕EeePad TF ...

  6. android滑动图形验证码,Android使用更简单的方式实现滑块拼图验证码功能

    实现滑块拼图验证码功能之前已经写过一篇了,上一篇使用的是自定义控件的方式实现这个功能,主要还是想让童鞋们知其然更知其所以然,还没看的童鞋可以先看看Android实现滑块拼图验证码功能这篇. 在项目的开 ...

  7. Android的消息机制简单总结

    参考文章: http://gityuan.com/2015/12/26/handler-message-framework/#next 参考资料: Android Framework的源码: Mess ...

  8. [置顶] Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite...

    SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...

  9. Android PC投屏简单尝试—最终章2

    源码地址:https://github.com/deepsadness/AppRemote 上一章中,我们简单实现了PC的投屏功能. 但是还是存在这一些缺陷. 屏幕的尺寸数据是写死的 不能通过PC来对 ...

最新文章

  1. 加载Loader.bin
  2. jmh 基准测试_JMH:如何设置和运行JMH基准
  3. 线程run方法和start方法的区别
  4. MySQL 高级 ———— MySQL逻辑架构图简介
  5. javascript中作用域、全局作用域、局部作用域、隐式全局变量、块级作用域、作用域链、预解析
  6. 东北大学软件项目管理与过程改进_可视化看板——汽车研发项目管理成功的奥秘...
  7. Android 开发之旅:深入分析布局文件又是“Hello World!”
  8. Firefox扩展批量安装脚本
  9. 解决vue多个路由共用一个页面的问题
  10. expect脚本中,变量的写法
  11. go语言读取文件的方法-1
  12. 3Dmax建模教程详细步骤3D建模速成入门到高级教程 小白必看
  13. 设计模式:责任链模式
  14. ant-vue中的a-icon使用方法
  15. (ACWing yxc算法基础课)习题课1.1
  16. 中国行政区划数据下载
  17. linux shell获取同一网段存活主机的IP和MAC地址
  18. SpringBoot集成SpringMVC
  19. uniapp使用环信插件实现视频通话
  20. 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)

热门文章

  1. Photoshop CS2 视频教程-PS加深工具(转)
  2. sh命令脚本在终端运行出现Permission denied的解决办法
  3. Rhel7/8的调优服务tuned
  4. cucumber学习笔记 -- 测试报告
  5. 中国象棋-1.0开源啦
  6. Docker部署Redis单机版
  7. NameNode检查点状态报警:文件系统检查点已有 1 天,2 小时,23 分钟
  8. 省市县JSON数据ppca-code.json
  9. html button形状,一个清爽的button按钮样式
  10. Linux服务器离线安装SVN详解