Я знаю, что об этом уже спрашивали, но во всех ответах использовалась 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"/>