【问题标题】:Fading animation渐变动画
【发布时间】:2016-08-12 06:26:12
【问题描述】:

我正在尝试在 android 中制作褪色动画。通过单击图像过渡,我可以看到下一张图像。

但是如何通过点击第二张图片回到第一张图片?

public void fade (View view) {
    ImageView naruto = (ImageView) findViewById(R.id.naruto);
    ImageView sasuke = (ImageView) findViewById(R.id.sasuke);
    naruto.animate().alpha(0f).setDuration(2000);
    sasuke.animate().alpha(1f).setDuration(2000);
}

public void reappear (View view) {
    ImageView sasuke1 = (ImageView) findViewById(R.id.sasuke);
    ImageView naruto1 = (ImageView) findViewById(R.id.naruto);
    sasuke1.animate().alpha(0f).setDuration(2000);
    naruto1.animate().alpha(1f).setDuration(2000);
}

【问题讨论】:

    标签: android android-animation


    【解决方案1】:

    淡出:

    public void fade (View view) {
        ImageView naruto = (ImageView) findViewById(R.id.naruto);
        ImageView sasuke = (ImageView) findViewById(R.id.sasuke);
        naruto.animate().alpha(0f).setDuration(2000).setListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                naruto.setVisibility(View.GONE);
            }
        });
        sasuke.setAlpha(0f);
        sasuke.setVisibility(View.VISIBLE);
        sasuke.animate().alpha(1f).setDuration(2000).setListener(null);
    }
    

    重新出现:

    public void reappear (View view) {
        ImageView sasuke = (ImageView) findViewById(R.id.sasuke);
        ImageView naruto = (ImageView) findViewById(R.id.naruto);
        sasuke.animate().alpha(0f).setDuration(2000).setListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                naruto.setVisibility(View.GONE);
            }
        });
        naruto.setAlpha(0f);
        naruto.setVisibility(View.VISIBLE);
        naruto.animate().alpha(1f).setDuration(2000);
    }
    

    【讨论】:

    • 在处理 ViewPropertyAnimators 时不需要 AnimatorListenerAdapter 或 AnimatorListener。相反,您可以使用:sasuke.animate().alpha(0f).setDuration(2000).withEndAction(new Runnable() { @Override public void run() { sasuke.setVisibility(View.GONE); } });
    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多