如何从右到左,从左到右翻转两个LinearLayout

时间:2013-11-09 07:33:09

标签: android animation

我的LinearLayout中有两个screen

第一个应该是可见的,第二个应该在活动启动时不可见。在第一个button中按Linearlayout,第一个LinearLayout应为invisible,第二个应为visible

但是* 我想要一些隐形和不可见状态下的动画。 *就像1st不可见时它应该animate朝向右侧屏幕将隐身,而2nd屏幕应来自leftside的{​​{1}},并提供screen效果。

4 个答案:

答案 0 :(得分:2)

好的,这将是你的问题的答案 首先使用标记android:visibility="invisible"隐藏xml布局文件中的第二个LinearLayout,因为您在活动启动时第一次不想要它,然后在anim文件夹中创建res文件夹两个动画xml文件,例如flip_in_leftflip_in_right flip_in_left.xml

<translate
    android:duration="500"
    android:fromXDelta="100%"
    android:toXDelta="0"
    />

然后在 flip_in_right.xml 中应用

<translate
    android:duration="500"
    android:fromXDelta="0"
    android:toXDelta="100%"
    />

获取两个LinearLayout's

的ID
LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);
LinearLayout layout2 = (LinearLayout) findViewById(R.id.layout2);

点击ButtononClickListener

layout1.startAnimation(AnimationUtils.loadAnimation(this,flip_in_right));
layout.setVisible(View.GONE);
layout2.setVisible(View.VISIBLE)
layout1.startAnimation(AnimationUtils.loadAnimation(this,flip_in_left));
像这样你可以做到

答案 1 :(得分:1)

试试这个:

TranslateAnimation animation = new TranslateAnimation(0, -viewWidth, 0, 0); // To animate to the left. To animate right, remove the "-".
        animation.setDuration(500);
        animation.setAnimationListener(new TranslateAnimation.AnimationListener() 
        {

            @Override
            public void onAnimationStart(Animation animation) { }

            @Override
            public void onAnimationRepeat(Animation animation) { }

            @Override
            public void onAnimationEnd(Animation animation) 
            {               
                myView.setVisibility(View.GONE);
            }
        });

        myView.startAnimation(animation);

答案 2 :(得分:1)

在res中创建anim文件夹并创建xml,如slie_out_left.xml

<translate
    android:duration="300"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="100%"
    android:toYDelta="0" />

这是另一个xml文件名是silde_in_right.xml

<translate
    android:duration="300"
    android:fromXDelta="100%"
    android:fromYDelta="0%"
    android:toXDelta="0%"
    android:toYDelta="0%" />

使用此

获取活动中的动画
Animation anim1=AnimationUtils.loadAnimation(this,R.anim.slide_out_left);
Animation anim2=AnimationUtils.loadAnimation(this,R.anim.slide_in_right);

将此动画应用于受尊重的布局。并保持各自的能见度功能。

答案 3 :(得分:0)

                holder.layout.setVisibility(View.VISIBLE);

                Animation animation = AnimationUtils.loadAnimation(
                        _context, R.animator.left_anim);
                animation.setDuration(500);
                holder.layout.setAnimation(animation);
                holder.layout.animate();

如果您不参加活动课程

here is the left_anim xml

<?xml version="1.0" encoding="utf-8"?>


<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>