Страницы

Поиск по вопросам

вторник, 31 марта 2020 г.

Анимация переворота карты

#java #android #android_studio #android_animation


Делаю простенькую карточную игру. Разложено несколько карт и я хочу, чтобы при нажатии
на любую из них она переворачивалась с использованием анимации.

Подскажите, не могу понять, какую анимацию и как правильно использовать.
    


Ответы

Ответ 1



Использую вот такой класс: public class FlipAnimation implements Animation.AnimationListener { private Animation animation1; private Animation animation2; private boolean isBackOfCardShowing = true; private ImageView img; private Context ctx; private FlipEnd flipped; Card card; public interface FlipEnd { void flipEnd(ImageView img, Card card); } FlipAnimation(Context ctx, ImageView img, Card card) { this.img = img; this.ctx = ctx; this.card = card; flipped = (FlipEnd) ctx; animation1 = AnimationUtils.loadAnimation(ctx, R.anim.flip_to_middle); animation1.setAnimationListener(this); animation2 = AnimationUtils.loadAnimation(ctx, R.anim.flip_from_middle); animation2.setAnimationListener(this); img.clearAnimation(); img.setAnimation(animation1); img.startAnimation(animation1); } @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (animation == animation1) { if (isBackOfCardShowing) { img.setImageResource(R.drawable.card_face); flipped.flipEnd(img,card); } else { img.setImageResource(R.drawable.card_back); } img.clearAnimation(); img.setAnimation(animation2); img.startAnimation(animation2); } else { isBackOfCardShowing = !isBackOfCardShowing; } } @Override public void onAnimationRepeat(Animation animation) { } } Тут еще сразу добавлен интерфэйс, чтобы отслеживать, когда и какая карта перевернулась. Кастомизируйте его, как хотите. R.anim.flip_to_middle.xml : flip_from_middle.xml: Вызывать там, где надо: new FlipAnimation(YourActivity.this, cardImage); Попробуйте, эффект будет как будто переворачивается карта :)

Комментариев нет:

Отправить комментарий