为什么要来回播放Android动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么要来回播放Android动画相关的知识,希望对你有一定的参考价值。

我是android动画的新手,首先要进行一些测试。

所以,我创建了此活动

  override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button.setOnClickListener {
            imageView.animate()
                .translationX(imageView2.x - imageView.x)
                .translationY(imageView2.y - imageView.y)
                .start()
        }

    }

使用此布局:

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="52dp"
    android:layout_marginTop="80dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@mipmap/ic_launcher" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="232dp"
    android:layout_marginTop="192dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@android:drawable/ic_delete" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="144dp"
    android:layout_marginTop="296dp"
    android:text="Button"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

当我单击按钮时,它将第一幅图像完美地动画化为第二幅图像。

我不明白,为什么再次单击该按钮会将其重新设置为原始位置。似乎知道图像现在和现在在哪里,并反转动画本身。

答案

这实际上是合乎逻辑的,而且很简单。

[第一次单击时,imageView转换为[(232-52)x,(192-80)y],即(180,112)。

然后第二次单击时,imageView从(180,112)转换为[(232-180)x,(192-112)y],即(52,80)。

所以它返回到原来的位置。

以上是关于为什么要来回播放Android动画的主要内容,如果未能解决你的问题,请参考以下文章

Android:将“ViewPager”动画从片段更改为片段

Android 动画嵌套片段

unity动画一个片段播放完怎么让它不会到初始状态

Android使用片段在viewpager中的页面滚动上放置动画

动画未按照编写代码的顺序运行

播放android studio时片段中的VideoView没有声音