欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Android属性动画 实战-视差动画

发布时间:2024/9/30 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android属性动画 实战-视差动画 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118976533
本文出自【赵彦军的博客】

文章目录

  • 效果图
  • 实例代码

效果图

先看看效果图:

从效果上看就是布局文件从从屏幕右侧飞入屏幕内,但不是一起飞入,而是有视差效果。

实例代码

我们先写布局:

<?xml version="1.0" encoding="utf-8"?><androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><Buttonandroid:id="@+id/view1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="pause" /><Buttonandroid:id="@+id/view2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="resume" /><ImageViewandroid:id="@+id/view3"android:layout_width="match_parent"android:layout_height="200dp"android:src="@drawable/aa" /></androidx.appcompat.widget.LinearLayoutCompat>

布局非常简单,就是3个view( view1、view2、view3)。其中 view3 是一个ImageView 。看看预览效果

编写代码:

class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)var view1: View = findViewById(R.id.view1)var view2: View = findViewById(R.id.view2)var view3: View = findViewById(R.id.view3)view1.visibility = View.GONEview2.visibility = View.GONEview3.visibility = View.GONEval animator = slide(view1)//延迟执行:防止执行太快,视觉看不清animator.startDelay = 200animator.doOnStart {view1.visibility = View.VISIBLE}val animator2 = slide(view2)//延迟执行:制造和view1视差效果animator2.startDelay = 500animator2.doOnStart {view2.visibility = View.VISIBLE}val animator3 = slide(view3)//延迟执行:制造和view2视差效果animator3.startDelay = 800animator3.doOnStart {view3.visibility = View.VISIBLE}animator.start()animator2.start()animator3.start()}//从屏幕右侧滑入屏幕private fun slide(view: View): Animator {//获取屏幕宽度val display = windowManager.defaultDisplayval width = display.widthval animator = ObjectAnimator.ofFloat(view, "translationX", width.toFloat(), 0f)animator.interpolator = DecelerateInterpolator()animator.duration = 450return animator} }

代码非常简单,我就不一一解释了,相信你能看明白

总结

以上是生活随笔为你收集整理的Android属性动画 实战-视差动画的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。