Подтвердить что ты не робот

Анимация исчезает и исчезает

Используя этот код, у меня есть только постепенное появление, я ищу, как добавить постепенное исчезновение. Я добавил еще один XML файл под названием "fadeout", но не могу интегрировать его в свой код.

ImageView imageView = (ImageView)findViewById(R.id.imageView);
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
imageView.startAnimation(fadeInAnimation);

button1.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        imageView.startAnimation(fadeInAnimation);
    }
}

fadein.xml

<?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="Your Duration(in milisecond)"
    android:repeatCount="infinite"/>
 </set>
4b9b3361

Ответ 1

Вот мое решение. Он использует AnimatorSet. Библиотека AnimationSet была слишком глючной, чтобы работать. Это обеспечивает бесшовные и бесконечные переходы между затуханием и выпадением.

public static void setAlphaAnimation(View v) {
    ObjectAnimator fadeOut = ObjectAnimator.ofFloat(v, "alpha",  1f, .3f);
    fadeOut.setDuration(2000);
    ObjectAnimator fadeIn = ObjectAnimator.ofFloat(v, "alpha", .3f, 1f);
    fadeIn.setDuration(2000);

    final AnimatorSet mAnimationSet = new AnimatorSet();

    mAnimationSet.play(fadeIn).after(fadeOut);

    mAnimationSet.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            mAnimationSet.start();
        }
    });
    mAnimationSet.start();
}

Ответ 2

Это хороший пример для Fade In and Fade Out Animation with Alpha Effect

Анимация Fade In Fade Out

ОБНОВЛЕНО:

проверьте этот ответ, это поможет вам

Ответ 3

Согласно документации AnimationSet

Представляет группу анимаций, которые должны воспроизводиться вместе. трансформация каждой отдельной анимации складывается в одно преобразование. Если AnimationSet задает любые свойства, которые дети также устанавливают (например, продолжительность или fillBefore), значения AnimationSet переопределяет дочерние значения

AnimationSet mAnimationSet = new AnimationSet(false); //false means don't share interpolators

Передайте true, если все анимации в этом наборе должны использовать интерполятор, связанный с этим AnimationSet. Передать false, если каждый анимация должна использовать свой собственный интерполятор.

ImageView imageView= (ImageView)findViewById(R.id.imageView);
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_in);
Animation fadeOutAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_out);
mAnimationSet.addAnimation(fadeInAnimation);
mAnimationSet.addAnimation(fadeOutAnimation);
imageView.startAnimation(mAnimationSet);

Надеюсь, это поможет вам.

Ответ 4

Я работаю в Котлине (рекомендую всем), поэтому синтаксис может быть немного выключен. Я просто хочу позвонить:

  • v.animate(). alpha (0f).duration = 200

Я думаю, что в Java это было бы следующим:

  • v.animate(). Альфа (0f).setDuration(200)

Try:

  • private void hide (просмотр v, int duration) { v.animate(). альфа (0f).setDuration(длительность) }

  • private void show (просмотр v, int duration) { v.animate(). альфа (1f).setDuration(длительность) }

Ответ 5

мы можем просто использовать:

public void animStart(View view) {
    if(count==0){
        Log.d("count", String.valueOf(count));
        i1.animate().alpha(0f).setDuration(2000);
        i2.animate().alpha(1f).setDuration(2000);
        count =1;
    }
    else if(count==1){
        Log.d("count", String.valueOf(count));
        count =0;
        i2.animate().alpha(0f).setDuration(2000);
        i1.animate().alpha(1f).setDuration(2000);
    }
}

где i1 и i2 определены в onCreateView() как:

    i1 = (ImageView)findViewById(R.id.firstImage);
    i2 = (ImageView)findViewById(R.id.secondImage);

count - это переменная класса, инициализированная в 0.

XML файл:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
        <ImageView
            android:id="@+id/secondImage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="animStart"
            android:src="@drawable/second" />
      <ImageView
          android:id="@+id/firstImage"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"

          android:onClick="animStart"
          android:src="@drawable/first" />
    </RelativeLayout>

@drawable/first и @drawable/second - изображения в папке drawable в res.