我为我的应用程序制作了一个启动屏幕,使得Imageview在启动后可见4秒。然后,它会切换Imageview和Web视图的可见性,以便现在可以看到Web视图。当Imageview消失时,如何制作淡出效果?
这是我用来切换可见性的代码
new Handler().postDelayed(new Runnable() {
public void run() {
findViewById(R.id.imageLoading1).setVisibility(View.GONE);
findViewById(R.id.webMain).setVisibility(View.VISIBLE);
}
}, 4000);
答案 0 :(得分:1)
您的代码不起作用的原因是Handler().postdelayed(Runnable, int)
等待指定的时间然后执行Runnable
。您需要做的是更改视图的透明度。
要淡出一个视图,同时淡出另一个视图,请尝试以下操作:
首先将WebView
设置为淡入4秒以上:
View web = findViewById(R.id.webMain);
web.setAlpha(0f);
web.setVisibility(View.VISIBLE);
web.animate()
.alpha(1f)
.setDuration(4000)
.setListener(null);
接下来将ImageView
设置为淡出:
View image = findViewById(R.id.imageLoading1);
image.animate()
.alpha(0f)
.setDuration(4000)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
// Now that the ImageView is fully transparent, hide it.
image.setVisibility(View.GONE);
}
});
两个视图应该均匀交叉淡入淡出。有关详情和动画,请参阅Android开发者的this tutorial。
希望这有帮助!