【问题标题】:How to slide animate and make a view visible from right to left in Android如何在Android中滑动动画并使视图从右到左可见
【发布时间】:2017-02-28 19:00:46
【问题描述】:

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

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

【问题讨论】:

    标签: android animation


    【解决方案1】:

    您可以改为添加淡入淡出动画:

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

    【讨论】:

      【解决方案2】:

      res文件夹下的anim文件夹内创建一个文件slide_in_anim.xml并添加此代码

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

      【讨论】:

        猜你喜欢
        • 2011-07-06
        • 1970-01-01
        • 1970-01-01
        • 2021-07-05
        • 2016-03-20
        • 1970-01-01
        • 1970-01-01
        • 2021-11-28
        • 2015-07-01
        相关资源
        最近更新 更多