Почему view.startAnimation (анимация) не работает при вызове из события?

Я создал настраиваемое представление, которое использует фиктивный TranslateAnimation для настройки некоторых свойств макета. Я использую Интерполятор для вычисления высоты и применяю его к представлению внутри метода applyTransformation () TranslateAnimation.

Это работает достаточно хорошо, если я запускаю анимацию из своего Activity.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Log.i("test", "onCreate()");
    view.expand(); // This method starts the animation
}

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

@Override
// This method is touch handler of the View itself
public boolean onTouch(View v, MotionEvent event) {
    Log.i("test", "onTouch()");
    this.expand(); // onTouch is part of the view itself and calls expand() directly
    return true;
}

Мой метод расширения выглядит следующим образом:

public void expand() {
    Log.i("test", "Expand!");

    TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 0) {

        @Override
        protected void applyTransformation(float interpolatedTime, Transformation t) {
            Log.i("test", "applyTransformation()");

            super.applyTransformation(interpolatedTime, t);

            // do something
        }

    };
    anim.setDuration(500);
    anim.setInterpolator(new AccelerateDecelerateInterpolator());
    this.someInternalView.startAnimation(anim);
}

После создания моего действия Logcat показывает "onCreate ()" Внутри моего события касания Logcat показывает "onTouch ()" Внутри раскрывающегося ( ) метод Logcat показывает "Развернуть!" - либо вызывается из мероприятия, либо из события.

Внутри метода applyTransformation () Logcat показывает «applyTransformation ()» - НО! только если expand () вызывается из onCreate (). Любая попытка запустить анимацию из события не удалась.

Мне кажется, что это какая-то проблема с потоками. Могло ли это быть? Что мне не хватает? Насколько я понимаю из других сообщений, запуск анимации из событий должен работать без проблем ...

Заранее спасибо!

7
задан david.schreiber 29 September 2011 в 17:20
поделиться