我想通过右侧到左侧的幻灯片动画效果使视图可见,反之亦然。我已经成功地能够隐藏一个从左到右幻灯片动画但无法实现另一个视图的视图。 以下是我正在使用的代码段:
private void showLayout(){
if(mContainerLayout.getVisibility() == View.VISIBLE){
mContainerLayout.animate()
.translationX(mContainerLayout.getWidth())
.setDuration(300)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mContainerLayout.setVisibility(View.GONE);
}
}).start();
}
else{
mContainerLayout.animate()
.translationX(0)
.setDuration(300)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mContainerLayout.setVisibility(View.VISIBLE);
}
}).start();
}
}
答案 0 :(得分:4)
您可以添加淡入淡出动画:
private void showLayout(boolean show){
if (show){
mContainerLayout.animate()
.translationX(0)
.setDuration(300)
.alpha(1)
.start();
} else {
mContainerLayout.animate()
.translationX(mContainerLayout.getWidth())
.alpha(0)
.setDuration(300)
.start();
}
}
答案 1 :(得分:0)
在slide_in_anim.xml
文件夹下的anim
文件夹中创建文件res
并添加此代码
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fillAfter="true"
android:fromXDelta="-100%p"
android:toXDelta="0%p" />
</set>
然后将此动画用作
Animation slideAnimation = AnimationUtils.loadAnimation(context, R.anim.slide_in_up);
mContainerLayout.startAnimation(slideAnimation);