滑动动画但是wrap_content

时间:2014-09-06 15:51:29

标签: android animation slide

我想要实现的是XML( no code please !!! )来做到这一点: enter image description here

我不想要下面的xml因为它将我的弹出窗口拖到屏幕顶部

    <translate 
    android:fromYDelta="100%p" 
    android:toYDelta="0%p" 
    android:fillAfter="true"
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="500" />

这是我的XML,但它也不起作用:(

    <translate 
    android:fromYDelta="100%p" 
    android:toYDelta="-100%"
    android:fillAfter="true"
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="500" />

1 个答案:

答案 0 :(得分:2)

如果您有动画方面的经验,那就很简单了!

您需要在/ res文件夹中创建一个名为anim的文件夹,并在该文件夹内放置slide_up.xml动画文件:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="100%"
        android:toYDelta="0%"       
        android:duration="1000" />
</set>

然后是一个slide_down.xml动画文件:

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

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0%"
        android:toYDelta="100%"
        android:duration="1000" />
</set>

然后,您将在java中创建片段:

String FRAGMENT_TAG = "YOURFRAGMENT"; //this is how you'll look for it in the manager
YourFragment f = new YourFragment();
getSupportFragmentManager().beginTransaction()
         .setCustomAnimations(R.anim.slide_up,
                R.anim.slide_down)              
         .replace(R.id.menu_container, f, FRAGMENT_TAG)
         .addToBackStack(null).commit();

或者,如果您使用的是弹出窗口:

popupwindow.showAtLocation(getWindow().getDecorView().findViewById(android.R.id.‌​content), Gravity.BOTTOM, 0, 0);

瞧!我不太确定只通过xml这样做的方法。这似乎是一种相当灵活的简单方法之一。