如何创建淡入淡出动画?

时间:2018-05-17 03:51:05

标签: java android

当我遇到一个小问题时,我正在学习android,并试图为ImageView做一个淡入淡出的动画

 ImageView batman = (ImageView)findViewById(R.id.batmanb);
 batman.animate().alpha(0f).setDuration(500);

我为ID为batman的ImageView创建了一个onClick,并编写了代码。然而,它不是在500毫秒内缓慢消失,而是在几秒钟后消失在其中。有关做什么的任何建议?

2 个答案:

答案 0 :(得分:0)

您可以尝试 Object Animator AlphaAnimation

使用,

ImageView batman= (ImageView) findViewById(R.id.yourid);
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(batman, "alpha", 1f, 0f);
objectAnimator.setDuration(500L);
objectAnimator.start();

或使用,

AlphaAnimation fade_in = new AlphaAnimation(1f, 0f);
fade_in.setDuration(500);
yourImageView.startAnimation(fade_in);

答案 1 :(得分:0)

创建两个xml文件

fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
  android:interpolator="@android:anim/accelerate_interpolator"
  android:fromAlpha="0.0" android:toAlpha="1.0"
  android:duration="500" />

fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
  android:interpolator="@android:anim/accelerate_interpolator"
  android:fromAlpha="1.0" android:toAlpha="0.0"
  android:fillAfter="true"
  android:duration="500" />

on fade_in动画的Click事件使用此代码

   Animation animation = AnimationUtils.loadAnimation(FadeInFadOutAnimationActivity.this, R.anim.fade_in);
   YOUR_IMAGE.startAnimation(animation);
   YOUR_IMAGE.setVisibility(View.VISIBLE);

on fade_out动画的Click事件使用此代码

Animation animation = AnimationUtils.loadAnimation(FadeInFadOutAnimationActivity.this, R.anim.fade_out);
YOUR_IMAGE.startAnimation(animation);
YOUR_IMAGE.setVisibility(View.INVISIBLE);