如何在Android中从右到左滑动动画并使视图可见

时间:2017-02-28 10:05:43

标签: android animation

我想通过右侧到左侧的幻灯片动画效果使视图可见,反之亦然。我已经成功地能够隐藏一个从左到右幻灯片动画但无法实现另一个视图的视图。 以下是我正在使用的代码段:

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();
    }
}

2 个答案:

答案 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);