Pau*_*aul 4 java animation android
linearLayout当我按下按钮时,我有一个消失,当我再次按下按钮时它会回来.但它做得如此之快,看起来并不好看.我这样做是通过:
disappearView.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)
我想添加一些动画......如果我只是将visibity设置为隐藏布局所在的空间仍然存在.所以我尝试了这个:
if (disappearView.getVisibility() == View.VISIBLE){
Animation out = AnimationUtils.makeOutAnimation(this, true);
disappearView.startAnimation(out);
disappearView.setVisibility(View.INVISIBLE);
disappearView.setVisibility(View.GONE);
}
else {
Animation in = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);
disappearView.startAnimation(in);
disappearView.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)
这会使动画太快而消失.你根本看不到它.gone在invisible设置...或延迟后我是否需要使用线程启动?或者有更好的方法来做这一切吗?
Ben*_*ben 15
我不确定你要完成的是什么......你想让LinearLayout在一点点时间内消失而不是立即消失吗?然后,一旦淡出,通过View.GONE从父母中移除?
如果是这样,您可以使用AlphaAnimation进行淡出,然后附加一个像EvZ发布的监听器:
AlphaAnimation fadeOutAnimation = new AlphaAnimation(1, 0); // start alpha, end alpha
fadeOutAnimation.setDuration(1000); // time for animation in milliseconds
fadeOutAnimation.setFillAfter(true); // make the transformation persist
fadeOutAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
linearLayout.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) { }
@Override
public void onAnimationStart(Animation animation) { }
});
linearLayout.setAnimation(fadeOutAnimation);
Run Code Online (Sandbox Code Playgroud)