Pol*_*len 26 android android-animation
使用此代码我只有淡入淡出,我正在寻找如何添加淡出.我添加了另一个名为"fadeout"的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);
}
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
TWi*_*lly 39
这是我的解决方案.它使用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();
}
Run Code Online (Sandbox Code Playgroud)
我一直在Kotlin工作(推荐给所有人),因此语法可能有点过时。我要做的只是简单地打电话给:
v.animate().alpha(0f).duration = 200
Run Code Online (Sandbox Code Playgroud)
我认为,在Java中,它将是以下内容:
v.animate().alpha(0f).setDuration(200)
Run Code Online (Sandbox Code Playgroud)
尝试:
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)
}
Run Code Online (Sandbox Code Playgroud)