0

我的活动

当我按下按钮开始时,我需要得到这个:

在此处输入图像描述

所以,我有滑动抽屉,我需要通过单击开始按钮来制作动画。如您所见,滑动抽屉的上下文包含搜索栏和 3 个按钮。当用户单击开始按钮动画应该开始应该隐藏按钮。

我的 xml 文件如下所示:

<SlidingDrawer
    android:id="@+id/slidingDrawer1"
    android:layout_width="match_parent"
    android:layout_height="140dp"
    android:layout_alignParentBottom="true"
    android:layout_x="3dp"
    android:layout_y="374dp"
    android:content="@+id/content"
    android:handle="@+id/handle" >

    <Button
        android:id="@+id/handle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Handle" />

    <RelativeLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="84dp" >

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="wrap_content"
            android:layout_height="47dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:background="@drawable/bcg9" >

            <Button
                android:id="@+id/button1"
                android:layout_width="106.6dp"
                android:layout_height="match_parent"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_marginTop="0dp"
                android:background="@drawable/rev" />

            <Button
                android:id="@+id/button2"
                android:layout_width="106.6dp"
                android:layout_height="match_parent"
                android:layout_marginTop="0dp"
                android:background="@drawable/pause" />

            <Button
                android:id="@+id/button3"
                android:layout_width="106.6dp"
                android:layout_height="match_parent"
                android:layout_alignParentBottom="true"
                android:layout_marginTop="0dp"
                android:layout_toRightOf="@+id/button2"
                android:layout_weight="1"
                android:background="@drawable/forv" />
        </LinearLayout>

        <SeekBar
            android:id="@+id/seekBar1"
            android:layout_width="match_parent"
            android:layout_height="11dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:background="@null"
            android:progressDrawable="@drawable/seekbar_progress"
            android:thumb="@drawable/thumb_drawable" />
    </RelativeLayout>
</SlidingDrawer>

<SeekBar
    android:id="@+id/seekBar2"
    android:layout_width="match_parent"
    android:layout_height="15px"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="62dp"
    android:maxHeight="3dp"
    android:progressDrawable="@drawable/seekbar_progress"
    android:thumb="@drawable/thumb_drawable" />

<Button
    android:id="@+id/animate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="start" />

</RelativeLayout>

我尝试使用翻译动画,但是当我单击开始按钮滑动抽屉下降时,它实际上消失了。

int topOfsd = getWindowManager().getDefaultDisplay().getHeight()-sd.getHeight();
                Animation animation = new TranslateAnimation(0,            0,topOfsd,topOfsd-100);
                animation.setDuration(1000);
                animation.setFillAfter(true);
                sd.startAnimation(animation);
                sd.setVisibility(0);        

怎么可能做到这一点?

4

2 回答 2

1

如果您使用 findViewById 获得 SlidingDrawer 的句柄,您可以调用 animateOpen 和 animateClose 函数。 http://developer.android.com/reference/android/widget/SlidingDrawer.html#animateOpen ()

如果您不希望滑动抽屉一直打开,只需将高度设置为倾斜即可。

于 2012-08-01T19:13:00.210 回答
0

我设法用属性动画解决了这个问题。

Display display = getWindowManager().getDefaultDisplay(); 
        int y = display.getHeight();
android.widget.SlidingDrawer  sd;
sd = (android.widget.SlidingDrawer)findViewById(R.id.slidingDrawer1);
sd.animate().translationY(someValue);
于 2012-08-08T09:37:03.770 回答