动画淡入淡出
使用这个代码,我只是淡入淡出,我寻找关于添加淡出。 我添加另一个名为“淡出”的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);
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>
这是我的解决方案。 它使用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(); }
这是Fade In and Fade Out Animation with Alpha Effect
好例子
在淡出中动画淡化
更新 :
检查这个答案可能会帮助你
根据文档AnimationSet
代表应该一起播放的一组动画。 每个单独的动画的转换组成一个单一的转换。 如果AnimationSet设置其子项也设置的任何属性(例如duration或fillBefore),则AnimationSet的值会覆盖子值
AnimationSet mAnimationSet = new AnimationSet(false); //false means don't share interpolators
如果此组中的所有动画都使用与此AnimationSet关联的插补器,则传递true。 如果每个动画应使用自己的插补器,则传递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);
我希望这会帮助你。
我一直在Kotlin工作(推荐给大家),所以语法可能有点偏差。 我所做的只是打电话给:
- v.animate()。alpha(0f).duration = 200
我认为,在Java中,这将是以下几点:
- v.animate()。α(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)}
- 如何在AndroidStudio中使用Dagger2和Kotlin在其他项目模块中实现接口库
- 领域,初始化一个空的字符串数组返回“不支持的类型java.lang.String ”上生成
- 用Kotlin在android中声明变量类型的正确方法是什么?
- 尝试使用Android Studio生成Kotlin应用程序的问题
- 如何让一个kotlin块返回void?
- Android上的Kotlin – 是否有最低的API级别要求?
- 如何从里面引用lambda?
- Kotlin:如何使用扩展功能延迟运行一个函数
- 错误:将字节码转换为dex时出错:原因:com.android.dex.DexException:多个dex文件定义了Lorg / jetbrains / anko / collections / CollectionsKt;