Я написал небольшое приложение для 2D-анимации, в котором пользователь перемещается по ImageView в макете с направлениями DPAD. Существует еще один ImageView, который служит целью. Если мяч попадает в ворота, должно появиться сообщение об успехе. Приведенный ниже код неверен в том смысле, что при перемещении DPAD отображается сообщение об успехе!
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
ObjectAnimator animator;
switch(keyCode) {
case KeyEvent.KEYCODE_DPAD_RIGHT:
animator = ObjectAnimator.ofFloat(ball, "translationX", ball.getX() + STEP_X);
animator.start();
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
animator = ObjectAnimator.ofFloat(ball, "translationX", ball.getX() - STEP_X);
animator.start();
break;
case KeyEvent.KEYCODE_DPAD_UP:
animator = ObjectAnimator.ofFloat(ball, "translationY", ball.getY() - STEP_Y);
animator.start();
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
animator = ObjectAnimator.ofFloat(ball, "translationY", ball.getY() + STEP_Y);
animator.start();
break;
}
Rect ballRect = new Rect(ball.getLeft(), ball.getTop(), ball.getRight(), ball.getBottom());
Rect goalRect = new Rect(goal.getLeft(), goal.getTop(), goal.getRight(), ball.getBottom());
if(goalRect.intersect(ballRect)) {
Toast.makeText(MainActivity.this, "Goal", Toast.LENGTH_SHORT).show();
}
return super.onKeyDown(keyCode, event);
}
Макет:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/goal"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/field" />
<ImageView
android:id="@+id/object"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:contentDescription="Object"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ball" />
</android.support.constraint.ConstraintLayout>
Предварительный просмотр:
Есть идеи?
можете ли вы рассказать больше о представлениях изображений, которые вы используете
Конечно @ramanavv! добавлен
@JasonStack, у тебя была возможность посмотреть, помог ли мой ответ?