Анимация исчезает и исчезает
Используя этот код, у меня есть только постепенное появление, я ищу, как добавить постепенное исчезновение. Я добавил еще один 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>
Ответы
Ответ 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.