-1

我有两个LinearLayout在我的screen.

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

但是*我想要一些在不可见和不可见状态时的动画。*就像当1st它不可见时,它应该animate朝向屏幕的右侧,意志是不可见的,并且2nd应该来自于leftside通过screen给予animating效果。

4

4 回答 4

2

好的,这将是您问题的答案,首先使用标签隐藏 xml 布局文件中的第二个 LinearLayout,android:visibility="invisible"因为您在活动启动时第一次不想要它,然后在文件anim夹内创建文件res夹,创建两个动画 xml 文件,例如flip_in_leftflip_in_rightflip_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%"
    />

获取你们两个的 IDLinearLayout's

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

通过点击Button 里面onClickListener

layout1.startAnimation(AnimationUtils.loadAnimation(this,flip_in_right));
layout.setVisible(View.GONE);
layout2.setVisible(View.VISIBLE)
layout1.startAnimation(AnimationUtils.loadAnimation(this,flip_in_left));

像这样你可以做

于 2013-11-09T11:00:56.870 回答
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);
于 2013-11-09T07:39:05.030 回答
1

在 res 中创建 anim 文件夹并创建像 slie_out_left.xml 这样的 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);

将此动画应用于受尊重的布局。并维护各自的可见性功能。

于 2013-11-09T07:49:27.093 回答
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>
于 2015-06-03T18:53:42.300 回答