Как сделать так, чтобы ImageView НЕ отображалось до тех пор, пока не запустится моя анимация? - PullRequest
4 голосов
/ 13 апреля 2011

У меня есть пустой экран, за исключением одного объекта ImageView, у которого гравитация установлена ​​в центр.Затем в своем каталоге res \ anim я анимирую это изображение, перемещая его из нижней части экрана в центр (поднимаясь вверх), используя.Я пытаюсь понять, как загружать активность пустым экраном, не отображая ImageView, пока анимация не закончится с центром изображения.То, что происходит прямо сейчас, - это экран, на котором изображение уже находится в центре, затем анимация переходит и перемещается снизу вверх.Как сделать так, чтобы анимация выполнялась в первую очередь, перед отображением ImageView?

РЕДАКТИРОВАТЬ ... Пожалуйста, посмотрите новый / связанный вопрос ниже:

ОК, .setVisibilty работает (спасибо за помощь), но это привело меня к другой проблеме.В моем файле макета xml для этого упражнения у меня есть только 2 объекта, TextView в верхней части экрана (с использованием LinearLayout) и затем ImageView, для которого установлено:

    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center">

    <ImageView android:id="@+id/Image01"
        android:src="@drawable/image_01"
        android:layout_height="150dp"
        android:layout_width="200dp"
        android:paddingTop="10px"
        >
    </ImageView>

    </LinearLayout>

Это приводит к потере изображенияцентр экрана.Я хочу, чтобы анимация поднималась от нижней части экрана к центру.Проблема заключается в том, что даже если у меня есть .setVisibility для невидимости в onCreate, а затем установить VISIBLE после запуска анимации, он все еще мигает изображение в мертвой точке экрана (в течение примерно половины секунды), а затем сразу падаетна дно и поднимается обратно в центр.Это выглядит небрежно.Как я могу сделать так, чтобы изображение никогда не показывалось, пока не появится снизу, а затем поднимется к центру?Прошу уточнения, так как я только промочил ноги Java и XML.

Окончательное редактирование ...

Не берите в голову, это, кажется, происходит только в эмуляторе.На телефоне работает нормально.

Спасибо всем за помощь.

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Убедитесь, что ваше изображение невидимо в начале действия, установив атрибут android:visibility на invisible или используя setVisibility() в onCreate().

Затем запустите анимацию и вызовите setVisibility (View.VISIBLE) за один раз:

image.startAnimation(...);
image.setVisibility(View.VISIBLE);
2 голосов
/ 13 апреля 2011

Я думаю, вы хотите посмотреть на theImageView.setVisibility(View.INVISIBLE).

И вы можете получить информацию о том, что делает ваша анимация (если это сделано) с AnimationListener.

AnimationListener будет выглядеть примерно так:

AnimationListener a_to_b = new AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // Do something 
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // Do something         
            }
        };

и вы установите его:

Animation ani = AnimationUtils.loadAnimation(this, R.anim.ani);

ani.setAnimationListener(a_to_b);

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...