Android Studio 中相对布局的动画
Posted
技术标签:
【中文标题】Android Studio 中相对布局的动画【英文标题】:Animation for relative layout in Android Studio 【发布时间】:2021-09-24 13:57:52 【问题描述】:我正在尝试在我的一个 activity_main.xml 布局中为相对布局设置动画。我希望相对布局在可见性设置为可见时向上滑动,并在可见性设置为不可见/不可见时向下滑动。 但我只能让动画向上滑动和向下滑动一次。当我再次单击按钮以使布局再次向上滑动(并设置为可见)时,布局只是弹出而没有动画;以及当我再次单击按钮使其向下滑动(并设置为消失/不可见)时,布局也只是消失而没有动画。 我将衷心感谢您的帮助。非常感谢!
这是我尝试过的:
Private RelativeLayout relLayoutInfo = findViewById(R.id.rel_Layout_Info);
Private Button btnSlideUp = findViewById(R.id.btn_Up);
Private Button brnSlideDown = findViewById(R.id.btn_Down);
private Animation extraInfoAnimationEnter = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.details_info_animation_enter);
Private extraInfoAnimationExit = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.details_info_animation_exit);
btnSlideUp.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
relLayoutInfo.setAnimation(extraInfoAnimationEnter);
relLayoutInfo.setVisibility(View.VISIBLE);
);
btnSlideDown.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
relLayoutInfo.setAnimation(extraInfoAnimationExit);
relLayoutInfo.setVisibility(View.GONE);
);
这是 extraInfoAnimationEnter 的动画文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%"
android:toYDelta="0"
android:duration="500">
</translate>
</set>
这是 extraInfoAnimationExit 的动画文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0"
android:toYDelta="100%"
android:duration="500">
</translate>
</set>
【问题讨论】:
使用transition api 实现可见性变化动画。检查此答案以获取更多详细信息***.com/a/56144349/1372866 【参考方案1】:这可能不是确切的解决方案,而只是一个建议,还有一个MotionLayout
也可用here
还有AndroidDevs官方频道的播放列表here
MotionLayout 非常适合动画,但如果这不是您想要的,我们可以尝试在您的 RelativeLayout
中实现它:)
【讨论】:
MotionLayout 仅适用于约束布局 2.0.0 及更高版本,在这种情况下这是一个可行的解决方案。以上是关于Android Studio 中相对布局的动画的主要内容,如果未能解决你的问题,请参考以下文章
Mac 下Android studio 怎么删除配置文件重新安装啊
如何在android Studio的顶部放置一个imageview?