一尘不染

布局之间的淡入效果

java

作为对象,我将重现两个布局之间的淡入淡出效果。现在我有这种情况:

LinearLayout l;
LinearLayout l2;

在它们之间切换

l.setVisibility(View.GONE);
l2.setVisibility(View.VISIBLE);

我想在这种转换之间添加淡入淡出效果,该怎么办?


阅读 149

收藏
2020-12-03

共1个答案

一尘不染

使用R.anim.fade_out和.R.anim.fade_in,您可以创建执行此操作的动画。我本人对此并不了解,但这里有一个有关android中动画的教程动画教程

PS本教程不是我的,因此信誉不归我所有。

编辑:

AnimationSet set = new AnimationSet(true);

Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(50);
set.addAnimation(animation);

animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f
);
animation.setDuration(100);
set.addAnimation(animation);

LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f);
l.setLayoutAnimation(controller);

淡出动画

public static Animation runFadeOutAnimationOn(Activity ctx, View target) {
  Animation animation = AnimationUtils.loadAnimation(ctx,android.R.anim.fade_out);
  target.startAnimation(animation);
  return animation;
}

我猜想您可以尝试这样的操作,因为我没有Android开发经验,所以我从教程中复制粘贴了动画,但我不知道动画的确切功能。另一个示例可以是示例2

2020-12-03