Как Fade In Fade Out текст во время загрузки с Animator? - PullRequest
0 голосов
/ 04 мая 2020

Я хочу добавить и исчезнуть текст во время загрузки в мое приложение. Для начала я попробовал это в al oop со счетчиком, но это не работает. Я пытался это:

        int i = 0;
        for(i=0; i < 5; i++){
            batteryAnimator = ObjectAnimator.ofFloat(tvBattery, "alpha", 1).setDuration(600);
            batteryAnimator.setStartDelay(200);
            batteryAnimator.start();
            screenAnimator = ObjectAnimator.ofFloat(tvScreen, "alpha", 1).setDuration(600);
            screenAnimator.setStartDelay(1500);
            screenAnimator.start();
            sensorAnimator = ObjectAnimator.ofFloat(tvSensor, "alpha", 1).setDuration(600);
            sensorAnimator.setStartDelay(3000);
            sensorAnimator.start();
            wifiAnimator = ObjectAnimator.ofFloat(tvWifi, "alpha", 1).setDuration(600);
            wifiAnimator.setStartDelay(4500);
            wifiAnimator.start();


            batteryAnimator = ObjectAnimator.ofFloat(tvBattery, "alpha", 0).setDuration(600);
            batteryAnimator.setStartDelay(6000);
            batteryAnimator.start();
            screenAnimator = ObjectAnimator.ofFloat(tvScreen, "alpha", 0).setDuration(600);
            screenAnimator.setStartDelay(6000);
            screenAnimator.start();
            sensorAnimator = ObjectAnimator.ofFloat(tvSensor, "alpha", 0).setDuration(600);
            sensorAnimator.setStartDelay(6000);
            sensorAnimator.start();
            wifiAnimator = ObjectAnimator.ofFloat(tvWifi, "alpha", 0).setDuration(600);
            wifiAnimator.setStartDelay(6000);
            wifiAnimator.start();
    }

Я пытался использовать batteryAnimator.setRepeatedMode (ValueAnimator.RESTART) и battery.Animator.setRepeatCount (ValueAnimator.INFINITE), я думаю, что я должен использовать что-то вроде этого, но тексты fla sh как новогодняя елка ..

Если кто-то может мне помочь ..

1 Ответ

0 голосов
/ 04 мая 2020

Создать этот метод. Это заставит ваш взгляд (в вашем случае, ваш TextView) постепенно исчезать:

    public void fadeInAndOut(final View view) {
        ObjectAnimator fadeOut = ObjectAnimator.ofFloat(view, "alpha", 0f);
        fadeOut.setDuration(500);
        fadeOut.setInterpolator(new DecelerateInterpolator());

        ObjectAnimator fadeIn = ObjectAnimator.ofFloat(view, "alpha", 1f);
        fadeIn.setDuration(500);
        fadeIn.setInterpolator(new DecelerateInterpolator());

        AnimatorSet set = new AnimatorSet();
        set.play(fadeIn).after(fadeOut);

        set.start();
    }

Затем вам нужно будет вызывать эту функцию между интервалами. В качестве примера я использую CountDownTimer. Он будет вызываться 20 раз с интервалом в 1 секунду.

new CountDownTimer(20000, 1000) {

    public void onTick(long millisUntilFinished) {
      //This will be called every time timer ticks
      fadeInAndOut(/*your TextView goes here*/)
    }

    public void onFinish() {
       //Timer is done. 
    }

}.start();
...