Случайно выберите Animation Flip в Android

Не знаю, как спросить об этом, я пытался найти лучший способ реализовать генератор случайных карт. Подобно флеш-карте или карте Таро. Я нашел много примеров, объясняющих переворачивание карты, и это здорово, но мне нужно, чтобы:

  1. Случайным образом выбрать карту
  2. Отобразите описание этой карты, либо перевернув и показав ее оборотную сторону, либо перейдя в совершенно новый вид.

Ниже приведен код, который у меня есть с использованием фрагментов, и я разработал случайную часть, используя Random(). Я борюсь с тем, что после нажатия кнопки она переходит к правильной карте и, более того, к правильному описанию этой карты.

Первоначально у меня было это в методе onCreate, и это нормально, но я поместил его в кнопку, чтобы я мог немного больше контролировать его, но я понимаю, что для вызова флипа пользователь коснется экрана. Есть ли какие-либо учебные пособия или предложения, которые можно предоставить, чтобы помочь мне решить эту проблему? Я заработал в iOS за день, конечно, это было сделано раньше.

public void ButtonOnClick(View v) {
    final ViewAnimator viewAnimator1 = (ViewAnimator)this.findViewById(R.id.viewFlipper1);
    final ViewAnimator viewAnimator2 = (ViewAnimator)this.findViewById(R.id.viewFlipper2);
    Random rnd = new Random();
    int randomListIndex = rnd.nextInt(4);
    switch (randomListIndex) {
        //Card1
        case 1:
            //Intent intent = new Intent(MyActivity.this, Flip3DViewTransitionActivity.class);
            //startActivity(intent);
            AnimationFactory.flipTransition(viewAnimator1, AnimationFactory.FlipDirection.RIGHT_LEFT);
        break;
        //Card2
        case 2:
             AnimationFactory.flipTransition(viewAnimator1, AnimationFactory.FlipDirection.RIGHT_LEFT);
        break;
        //Card3
        case 3:
            AnimationFactory.flipTransition(viewAnimator2, AnimationFactory.FlipDirection.RIGHT_LEFT);
        break;
        //Card4
        case 4:
            AnimationFactory.flipTransition(viewAnimator2, AnimationFactory.FlipDirection.RIGHT_LEFT);
        break;

    }
}

person Jeremy    schedule 28.05.2013    source источник


Ответы (1)


Думаю, у меня получилось. Я выбрал другой подход. Как вы можете видеть выше, я должен был сделать несколько вещей по-другому. В итоге я отказался от эффекта флипа и работал с эффектом затухания. Я знаю, что это не полностью ответило на вопрос. Однако мне удалось добиться того, что я намеревался сделать. Надеюсь, это поможет кому-то в будущем.

ImageView image;
    public void ButtonOnClick(View v) {
        Random rnd = new Random();
        int randomListIndex = rnd.nextInt(2);
        Animation myFadeInAnimation = AnimationUtils.loadAnimation(Tarot.this, R.anim.fadein);
        switch (randomListIndex) {
            case 0:

                //get the image your going to muck with
                image = (ImageView) findViewById(R.id.cardImageView);
                //set the image with what it should be
                image.setImageResource(R.drawable.storm);
                //apply the transition effect so it looks correct
                image.startAnimation(myFadeInAnimation);
            break;
            case 1:
                image = (ImageView) findViewById(R.id.cardImageView);
                image.setImageResource(R.drawable.scribe);
                image.startAnimation(myFadeInAnimation);

            break;
            default:
            break;
        }

    }

С уважением, Джереми

person Jeremy    schedule 30.05.2013