将“视图”移动到另一个视图的中心,或者相对于屏幕尺寸移动坐标

时间:2019-01-11 21:17:34

标签: android kotlin android-animation screen-size objectanimator

我知道这已经被问过了,但是所有答案都使用了Java,我完全没有经验。此外,android studio的自动翻译为kotlin不适用于这些答案的代码。

我正在创建一个我想为其制作动画的问答游戏。我有一个视图(一个小的脉动点),我想移到“正确”按钮的中心,并在击中该按钮时直接向上移动并移出屏幕。现在最后一部分没问题,但是我想不出一种移动按钮上点的好方法。如果我像下面的示例那样进行操作,它将无法适应不同的屏幕尺寸甚至屏幕方向。那么有没有办法将坐标设置为屏幕的百分比/分数?还是获取按钮中心的坐标然后移到那里?

这就是我到目前为止使用的:

        var soultoX = ObjectAnimator.ofFloat(mContentView, "x", 150f).apply {
        duration = 1000
    }
        var soultoY = ObjectAnimator.ofFloat(mContentView, "y", 1055f).apply {
        duration = 1000
    }

    fun soulToButton() = AnimatorSet().apply {
        play(soultoX).with(soultoY)
        start()
    }

一个示例按钮的xml:

    <Button
        android:text="@string/fa"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:id="@+id/fabutton"
        style="@style/Widget.AppCompat.Button.Colored"
        app:layout_constraintTop_toTopOf="@+id/guideline8" 
        app:layout_constraintBottom_toBottomOf="@+id/guideline7"
        android:textColorLink="@color/colorAccent" 
        android:textColor="@color/colorPrimary"
        app:layout_constraintVertical_bias="1.0"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"/>

视图:

    <Button
        android:text="@string/fa"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:id="@+id/fabutton"
        style="@style/Widget.AppCompat.Button.Colored"
        app:layout_constraintTop_toTopOf="@+id/guideline8" 
        app:layout_constraintBottom_toBottomOf="@+id/guideline7"
        android:textColorLink="@color/colorAccent"
        android:textColor="@color/colorPrimary"
        app:layout_constraintVertical_bias="1.0"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"/>

1 个答案:

答案 0 :(得分:-1)