0

我想使用TranslateAnimation.

我的 XML 就像

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >



<Button
    android:id="@+id/buttonsld"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/textsld"
    android:text="slideup" />

<LinearLayout
    android:id="@+id/layoutsld2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/buttonsld2"
    android:layout_below="@+id/buttonsld"
    android:background="@drawable/iz"
    android:orientation="vertical" >
</LinearLayout>

<LinearLayout
    android:id="@+id/layoutsld3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/buttonsld2"
    android:layout_below="@+id/buttonsld"
    android:background="@drawable/fon"
    android:orientation="vertical"
    android:visibility="gone" >
</LinearLayout>

<Button
    android:id="@+id/buttonsld2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="slidedown" />

</RelativeLayout>

我的代码就像

 private int x= 0;

buttonslideup.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (x == 0) {
                    lin_lay2.setVisibility(View.GONE);
                    lin_lay3.setVisibility(View.VISIBLE);
                     Animation slide = new TranslateAnimation(0, 0, 100, 0);
                     slide.setDuration(1000);
                     slide.setFillAfter(true);

                     lin_lay3.startAnimation(slide);
                    x = 1;
                } else {
                    lin_lay3.setVisibility(View.GONE);

                    lin_lay2.setVisibility(View.VISIBLE);
                     Animation slide = new TranslateAnimation(0, 0,
                     100, 0);

                     slide.setDuration(1000);
                     slide.setFillAfter(true);
                     lin_lay2.startAnimation(slide);
                    x = 0;
                }

            }
        });

但是当我使用它时,起初,lin_lay3滑动并进入屏幕并没有问题,但是当我再次单击按钮时,lin_lay2滑动,但它在后面lin_lay3,我看不到lin_lay2

我想要的是layouts通过单击来更改这些button

4

2 回答 2

0

您在单击按钮时开始另一个活动并查看活动布局的动画。只需将此代码放在starActivity(intent) 之后。

overridePendingTransition(R.anim.slide_in_top, R.anim.slide_out_bottom);

slide_in_top.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@integer/slideanim"
    android:fromYDelta="-100%p"
    android:toYDelta="0" />

slide_out_bottom.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@integer/slideanim"
    android:fromYDelta="0"
    android:toYDelta="100%p" />

在 value 文件夹中,创建 integer.xml 并放入

<item name="slideanim" format="integer" type="integer">1000</item>
于 2013-01-08T09:36:11.590 回答
0

在 on create 中,我们需要输入:

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
于 2018-04-23T15:10:32.463 回答