studio - fade in android animation
Android: imagen parpadeante con la animaciĆ³n Alpha fade (5)
La mejor forma de evitar el desvanecimiento:
ImageView myImageView = (ImageView) findViewById(R.id.imageView2);
Animation myFadeInAnimation = AnimationUtils.loadAnimation(Splash.this, R.anim.tween);
myImageView.startAnimation(myFadeInAnimation);
en su res / anim / create tween.xml tween 1s, inicie la opacidad 0 a 1 e invierta infinito ...
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="1000"
android:repeatMode="reverse"
android:repeatCount="infinite" />
</set>
He estado luchando por unos días sobre esto, finalmente decidí preguntar. Es tan simple que me falta algo muy básico.
Tengo una página de diseño XML con una imagen definida. Tengo dos páginas anim XML, una para cambiar alfa de 0 a 1, y la otra de 1 a 0 para crear un efecto de "parpadeo". Entonces la alphaAnimation se define en XML, solo necesito llamarla.
La imagen aparece, pero no hay efecto de parpadeo de bucle.
public class blinker extends Activity {
//create name of animation
Animation myFadeInAnimation;
Animation myFadeOutAnimation;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scanning_view);
//grab the imageview and load the animations
ImageView myImageView = (ImageView) findViewById(R.id.blinkingView01);
Animation myFadeInAnimation = AnimationUtils.loadAnimation(null, R.anim.fade_in);
Animation myFadeOutAnimation = AnimationUtils.loadAnimation(null, R.anim.fade_out);
//fade it in, and fade it out.
myImageView.startAnimation(myFadeInAnimation);
myImageView.startAnimation(myFadeOutAnimation);
}
}
Dos diseños de animación XML en el recurso Anim:
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="50" android:repeatCount="infinite"/>
</set>
Y el otro:
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="1000" android:repeatCount="infinite"/>
</set>
Por qué no usar android:repeatMode="reverse"
Puede usar la animación alfa siguiente para establecer los efectos intermitentes de las vistas en Android.
blinkanimation= new AlphaAnimation(1, 0); // Change alpha from fully visible to invisible
blinkanimation.setDuration(300); // duration
blinkanimation.setInterpolator(new LinearInterpolator()); // do not alter animation rate
blinkanimation.setRepeatCount(3); // Repeat animation infinitely
blinkanimation.setRepeatMode(Animation.REVERSE);
Después de esto, agrega la animación a tu vista como,
view.setAnimation(blinkanimation);
o
view.startAnimation(blinkanimation);
Si alguien decidirá usar la versión programática:
val anim = AlphaAnimation(1.0f, 0.0f)
anim.duration = 750
anim.fillAfter = true
// here is repeat settings
anim.repeatMode = AlphaAnimation.REVERSE // ping pong mode
anim.repeatCount = 1 // count of repeats
yourView.startAnimation(anim)
Si desea hacer la animación de desvanecimiento en un ImageView, pero no desea parpadear usted mismo o no desea que el fondo parpadee, una Vista personalizada es el único enfoque; consulte mi respuesta aquí: https://.com/a/50299715/2102748