¿Puede la ventana flotante utilizar animación personalizada?
params = new WindowManager.LayoutParams();
params.windowAnimations = android.R.style.Animation_Translucent;
Si lo cambia a R.style.custon_anim no tendrá ningún efecto. Translúcido;
Si lo cambia a R.style.custon_anim, no habrá animación de todos modos
El método disponible es actualizar ViewLayout directamente a través de un controlador, Runnable
p>Pero cuando cambias el tamaño del objeto, no se ve bien
Cuando cambias el tamaño del objeto, no se ve bien.
Aunque el tiempo de llamada se ha cambiado a 1 ms, no hay forma de llamar a la actualización cada milisegundo
Ahora usamos primero el método Runnable y solo hacemos el desvanecimiento efecto, y el objeto se amplía directamente a un valor fijo
El código es aproximadamente el siguiente
private void createFloatView(){
Log.d(" HuybnTag", "S.createFloatView");
btn_exif = new Button(getApplicationContext());
btn_exif.setBackgroundResource(R. drawable.exif);
wm = (WindowManager) getApplicationContext().WindowManager.LayoutParams FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
exif.height = 124;
exif.width = 124;
exif.gravity = Gravity.CENTER;
exif.windowAnimations = android.R.style.Animation_Translucent;
.......width=310 ;
exif.height=310;
final long startTime = System.postDelayed(new Runnable(){
public void run(){
fadeOutHandler(notificationView, params, startTime);
p>
}
}, 25);
}
public void fadeOutHandler(vista final de notificación, parámetros finales de LayoutParams, tiempo de inicio largo final){
largo tiempoAhora = System.currentTimeMillis();
float alpha = (1- ( ( float)(timeNow - startTime)/animTime) )* 1.0f;
if(alpha<=0)alpha = 0;
params.alpha = alpha;
Log.d("HuybnTag", "alpha=" +alpha);
wm.updateViewLayout(notificationView, params);
if (timeNow-startTime Handler handler = new Handler(); handler.postDelayed(new Runnable(){ public void run(){ fadeOutHandler(notificationView, params, startTime) ) } }, 25);