В WindowManager добавлено представление Animate

У меня есть представление (customView), добавленное в WindowManager.

WindowManager mWm = (WindowManager)activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams(WindowManager.LayoutParams.FILL_PARENT, 0, PixelFormat.TRANSPARENT);
mWl.dimAmount = 0.0f;
mWm.addView(customView, mWl);

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

//// Это это обработчик анимации ////

final Handler translateHandler = new Handler();

final Runnable mtranslateUp = new Runnable() {
    public void run() {
        Log.v("TEST","mtranslateUp Runnable");
        startAnimation(translateUp);
    }
};

//// Это слушатель кнопки закрытия ////

View.OnClickListener closeButtonListener = new View.OnClickListener() {         

    public void onClick(View v) {
        translateHandler.post(mtranslateUp);
    }
};

//// Это анимация перевода вверх ////

translateUp = new TranslateAnimation(0,0,0,-200);
translateUp.setFillAfter(true);
translateUp.setDuration(1000);
translateUp.setAnimationListener(new AnimationListener(){
        @Override
        public void onAnimationEnd(Animation animation) {
            Log.v("TEST","translateUp onAnimationEnd");
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }

        @Override
        public void onAnimationStart(Animation animation) {
            Log.v("TEST","translateUp onAnimationStart");
        }}
    );

Если customView добавляется к действию, этот код работает нормально!

Когда customView добавляется в WindowManager, журнал внутри onAnimationStart не отображается, но журнал внутри Runnable может отображаться.

Кто-нибудь может сказать как сделать анимацию в представлении, добавленном в WindowManager?

11
задан Mr.1 29 December 2011 в 07:08
поделиться