简介✍️

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. centos 7 ssh 安装mysql,Centos 7 安装Airflow
  2. 【转】 asp.net从视频文件中抓取一桢并生成图像文件的方法 实现多语言本地化应用程序 自动返回上次请求页面...
  3. 5分钟学会如何创建spring boot项目
  4. SparkSQL练习+理解+详解
  5. 更新wpscan_wpscan扫描工具
  6. 解决用Python对Sqlite进行数据更新比较慢的一种方法
  7. Python 的构建工具 setup.py
  8. ProgressBar--进度条
  9. Java基本数据类型的自动转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)...
  10. 卸载oracle——详细版
  11. 华为仿苹果字体_苹果手机和华为手机,同样的网络下为何我的手机网速这么差?...
  12. 与数据库服务器通讯协议出错,与数据库服务器通讯异常
  13. 克鲁赛德战记服务器无响应,克鲁赛德战记闪退黑屏登不上怎么办 解决方法
  14. roundcube邮箱手机端_用户换了手机号码后,产品该如何应对?
  15. 操作系统 存储管理实验报告
  16. 计算机工资表怎么打,Word怎么制作工资条 Word制作工资条教程-电脑教程
  17. 电机位置、速度检测方法大合集
  18. linux ibus 快捷键,Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置
  19. layui table动态选中_ODME与动态交通分配——DTALite使用测评
  20. Matlab从日文转换成英文或中文转换成英文

热门文章

  1. vue中用iframe嵌套页面,点击返回实现真正的退回上一步功能
  2. 中小企业如何提高品牌知名度?做好直播带货和短视频营销
  3. 苹果iMessage信息会被呈交给执法部门 聊天要注意了
  4. 使用 MediaPipe 身体跟踪构建不良身体姿势检测和警报系统
  5. AI学习路线图(转)
  6. word中行距设置固定值,图片显示不全的问题
  7. 第4.2节 神秘而强大的Python生成器精讲
  8. xlsx表格怎么做汇总统计_怎样在Excel电子表格中对数据进行分类汇总 实例教程...
  9. fl2440——u-boot的移植
  10. [贝聊科技]使用Android Studio和MAT进行内存泄漏分析