Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Puede la ventana flotante utilizar animación personalizada?

¿Puede la ventana flotante utilizar animación personalizada?

Los métodos que hemos encontrado hasta ahora solo pueden llamar animaciones integradas

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);