Twitter作为国外流行的交流软件,它的启动画面非常经典。现在,使用Android Jetpack库中的新布局MotionLayout可以比以往更轻松地实现出类似的初始动画。这就是我将在本文中创建的内容:基于Motionlayout实现类似Twitter的福师大图标的启动动画。此外,我还将介绍有关MotionLayout的一些基础知识。 我将在这篇文章中实现如下的动画: 简而言之,MotionLayout是一个ConstraintLayout允许您轻松在两个ConstraintSet之间进行转换的工具。 ConstraintSet包含每个视图的所有约束和布局属性。 Transition 指定要在其之间进行过渡的起始ConstraintSets。 将所有这些都放入MotionScene文件中,就可以拥有一个MotionLayout! 随着布局和动画变得越来越复杂,MotionScene也变得越来越复杂。 要创建项目,请执行以下操作: 运行效果如下: 要删除工具栏,导航栏,状态栏和文本并向背景添加颜色,请执行以下操作: 4.打开activity_main.xml并从布局中删除TextView以删除“ Hello World!”文本。 5.现在,在MainActivity.kt中,添加以下行以隐藏系统导航栏(如果复制并粘贴这些行出现 Unresolved reference build errors,请单击未解决的对象,然后按Alt + Enter添加库): 6.运行该应用程序。 现在,您基本上会看到一个空屏幕,以默认颜色作为背景: 在开始动画之前,我们只需要设置一些样式即可:红色背景及福师大校徽。 首先开始: 5.运行该应用程序,然后查看新更改。 由于MotionLayout是ConstraintLayout的一部分,并且目前仅在v2.0中有效,因此要使用它,我们首先需要更新ConstraintLayout依赖项: 为了最终使动画栩栩如生,您需要执行一些简单的步骤 最后,点击运行按钮,得到文章开头呈现的效果 祝大家编码愉快!💻 作者:116072017038 蔡文贤简介✍️
背景✍️
什么是MotionLayout?快速介绍
了解有关MotionLayout的更多信息:
项目设置⚙️
1.打开一个新项目。 2.选择一个空的Activity项目模板。这将创建一个带有操作栏的空白屏幕。 3.输入项目的名称,然后语言选择Kotlin。 4.单击完成。 5.运行项目以查看初始应用程序的外观
清理:
<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>
override fun onWindowFocusChanged(hasFocus: Boolean) { super.onWindowFocusChanged(hasFocus) if (hasFocus) { hideSystemUIAndNavigation(this) } } private fun hideSystemUIAndNavigation(activity: Activity) { val decorView: View = activity.window.decorView decorView.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_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // Hide the nav bar and status bar or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) }
添加福师大的校徽及设置其背景色:
<ImageView android: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" />
添加动作🚴♀️
更新ConstraintLayout:
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'
添加动画:
<?xml version="1.0" encoding="utf-8"?> <MotionScene xmlns:android="https://schemas.android.com/apk/res/android" xmlns:motion="https://schemas.android.com/apk/res-auto"> <Transition motion:constraintSetEnd="@+id/end" motion:constraintSetStart="@id/start" motion:duration="1000"> <KeyFrameSet> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="0" android:scaleX="1.0" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="0" android:scaleY="1.0" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="20" android:scaleX="0.7" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="20" android:scaleY="0.7" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="20" android:scaleX="0.2" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="20" android:scaleY="0.2" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="40" android:scaleX="0.7" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="40" android:scaleY="0.7" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="100" android:rotation="-360" android:scaleX="10.0" /> <KeyAttribute motion:motionTarget="@+id/imageView" motion:framePosition="100" android:rotation="-360" android:scaleY="10.0" /> </KeyFrameSet> <OnClick /> </Transition> <ConstraintSet android:id="@+id/start"> </ConstraintSet> <ConstraintSet android:id="@+id/end"> </ConstraintSet> </MotionScene>
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算