Tengo una vista (vista personalizada) agregada al WindowManager.Vista animada agregada en 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);
Dentro de la vista personalizada, llamaré a una animación de traducción cuando se presiona el botón de cerrar.
//// Este es el controlador para la animación ////
final Handler translateHandler = new Handler();
final Runnable mtranslateUp = new Runnable() {
public void run() {
Log.v("TEST","mtranslateUp Runnable");
startAnimation(translateUp);
}
};
//// Este es el detector para el botón de cierre ////
View.OnClickListener closeButtonListener = new View.OnClickListener() {
public void onClick(View v) {
translateHandler.post(mtranslateUp);
}
};
//// Esta es la animación de traducción ////
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");
}}
);
Si la vista personalizada se agrega a una actividad, ¡este código funciona bien!
Cuando se agrega la vista personalizada a un administrador de ventanas, el registro dentro de onAnimationStart no se muestra pero se puede mostrar el registro dentro de Runnable.
¿Alguien puede decir cómo hacer animación en una vista que se agrega a WindowManager?
¿Tiene alguna solución para esto? Por favor comparta, también estoy enfrentando el mismo problema – om252345