我是android新手。我想通过单击“浮动操作按钮”添加一些动画来打开片段。并且还需要一些Spring Rebound Example来动画视图。我在谷歌搜索,但没有例子。请帮我查一下Rebound Spring Example和Animation示例。谢谢。
答案 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" />
请注意,如果您动画的对象与其父级的宽度不同,那么事情看起来不太合适,因此您可能需要调整属性实现以适合您的使用情况下。