Android动画片段打开片段

时间:2015-12-23 06:43:00

标签: android spring animation

我是android新手。我想通过单击“浮动操作按钮”添加一些动画来打开片段。并且还需要一些Spring Rebound Example来动画视图。我在谷歌搜索,但没有例子。请帮我查一下Rebound Spring Example和Animation示例。谢谢。

1 个答案:

答案 0 :(得分:0)

你需要使用新的android.animation框架(对象动画师)和FragmentTransaction.setCustomAnimations以及FragmentTransaction.setTransition。

以下是使用ApiDemos中的setCustomAnimations' FragmentHideShow.java:

ft.setCustomAnimations(android.R.animator.fade_in,android.R.animator.fade_out); 这里是来自res / animator / fade_in.xml的相关动画XML:

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:interpolator/accelerate_quad"
    android:valueFrom="0"
    android:valueTo="1"
    android:propertyName="alpha"
    android:duration="@android:integer/config_mediumAnimTime" />

请注意,您可以使用<set>组合多个动画师,就像使用较旧的动画框架一样。

编辑:由于人们都在询问插入/滑出,我会在这里发表评论。

滑入和滑出 您当然可以为translationX,translationY,x和y属性设置动画,但通常幻灯片涉及在屏幕外设置动画内容。据我所知,没有任何使用相对值的翻译属性。但是,这并不能阻止您自己编写它们。请记住,属性动画只需要在您动画的对象(在本例中为视图)上使用getter和setter方法,因此您可以在视图子类上创建自己的getXFraction和setXFraction方法,如下所示:

public class MyFrameLayout extends FrameLayout {
    ...
    public float getXFraction() {
        return getX() / getWidth(); // TODO: guard divide-by-zero
    }

    public void setXFraction(float xFraction) {
        // TODO: cache width
        final int width = getWidth();
        setX((width > 0) ? (xFraction * width) : -9999);
    }
    ...
}

现在您可以为&#39; xFraction&#39;设置动画。财产,像这样:

<强> RES /动画/ slide_in.xml:

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:valueFrom="-1.0"
    android:valueTo="0"
    android:propertyName="xFraction"
    android:duration="@android:integer/config_mediumAnimTime" />

请注意,如果您动画的对象与其父级的宽度不同,那么事情看起来不太合适,因此您可能需要调整属性实现以适合您的使用情况下。