进出动画褪色(Animation fade in and out)

2019-07-17 19:55发布

使用此代码我只有在衰落,我在寻找如何添加淡出,以及。 我已经添加了所谓的“淡出”另一个XML,但我不能在我的代码它集成。

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>

Answer 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();
}


Answer 2:

这是一个好的例子Fade In and Fade Out Animation with Alpha Effect

动画淡入淡出

更新 :

检查这个答案可以在此帮助你



Answer 3:

从来就在科特林一直在努力(推荐给大家),所以语法可能有点过。 我要做的就是简单地调用:

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

我认为,在Java中,这将是以下:

v.animate().alpha(0f).setDuration(200)

尝试:

private void hide(View v, int duration) {
    v.animate().alpha(0f).setDuration(duration)
}

private void show(View v, int duration) {
    v.animate().alpha(1f).setDuration(duration)
}


Answer 4:

根据该文件AnimationSet

代表一组动画的应该一起玩。 每个单独的动画的变换是由在一起成为一个单一的变换。 如果AnimationSet设置,其子女也设置任何属性(例如,持续时间或fillBefore),AnimationSet的值覆盖子值

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

传递true,如果所有在这套动画应该使用与此相关的AnimationSet插补。 通假,如果每个动画应该使用自己的内插器。

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);

我希望这能帮到您。



Answer 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);

计数是一个类变量initilaized为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>

和是在res的绘制文件夹中的图像。



文章来源: Animation fade in and out