Vraag TextView-animatie - vervagen, wachten, vervagen


Ik maak een fotogalerij-app. Ik heb momenteel een imageview met een tekstweergave onderaan. Momenteel is het gewoon semi-transparant. Ik wil het laten vervagen, 3 seconden wachten en vervolgens 90% uitfaden. Door er focus op te plaatsen of een nieuwe foto te laden, wordt de cyclus herhaald. Ik heb een tiental pagina's gelezen en een paar dingen geprobeerd, geen succes. Het enige dat ik krijg, is een fade-in en vervaag ik onmiddellijk


16
2017-07-12 01:54


oorsprong


antwoorden:


U kunt een extra animatieobject gebruiken (dat de alpha niet wijzigt) om te voorkomen dat het onmiddellijk verdwijnt, stel animationListener in voor uw fade-in-effect en start het extra animatieobject in de on animationEnd van de fade-in, waarna u begint fade-out op animatie-einde van het extra animatie-object, probeer de onderstaande link, het zal helpen ..

Auto fade-effect voor tekstweergave


3
2018-04-05 23:46



protected AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f ) ; 
protected AlphaAnimation fadeOut = new AlphaAnimation( 1.0f , 0.0f ) ; 
txtView.startAnimation(fadeIn);
txtView.startAnimation(fadeOut);
fadeIn.setDuration(1200);
fadeIn.setFillAfter(true);
fadeOut.setDuration(1200);
fadeOut.setFillAfter(true);
fadeOut.setStartOffset(4200+fadeIn.getStartOffset());

Werkt perfect voor een witte achtergrond. Anders moet u tijdens het converteren van waarden wisselen AlphaAnimation klasse. Soortgelijk:

AlphaAnimation fadeIn = new AlphaAnimation( 1.0f , 0.0f ); 
AlphaAnimation fadeOut = new AlphaAnimation(0.0f , 1.0f ); 

Dit werkt met zwarte achtergrond en witte tekstkleur.


43
2017-07-15 17:52



Dat is de oplossing die ik in mijn project heb gebruikt voor het lussen van fade-in / fade-out animatie op TextViews:

private void setUpFadeAnimation(final TextView textView) {
    // Start from 0.1f if you desire 90% fade animation
    final Animation fadeIn = new AlphaAnimation(0.0f, 1.0f);
    fadeIn.setDuration(1000);
    fadeIn.setStartOffset(3000);
    // End to 0.1f if you desire 90% fade animation
    final Animation fadeOut = new AlphaAnimation(1.0f, 0.0f);
    fadeOut.setDuration(1000);
    fadeOut.setStartOffset(3000);

    fadeIn.setAnimationListener(new Animation.AnimationListener(){
        @Override
        public void onAnimationEnd(Animation arg0) {
            // start fadeOut when fadeIn ends (continue)
            textView.startAnimation(fadeOut);
        }

        @Override
        public void onAnimationRepeat(Animation arg0) {
        }

        @Override
        public void onAnimationStart(Animation arg0) {
        }
    });

    fadeOut.setAnimationListener(new Animation.AnimationListener(){
        @Override
        public void onAnimationEnd(Animation arg0) {
            // start fadeIn when fadeOut ends (repeat)
            textView.startAnimation(fadeIn);
        }

        @Override
        public void onAnimationRepeat(Animation arg0) {
        }

        @Override
        public void onAnimationStart(Animation arg0) {
        }
    });

    textView.startAnimation(fadeOut);
}

Ik hoop dat dit kan helpen!


3
2018-05-26 09:41