美文网首页
Android动画

Android动画

作者: 简单Liml | 来源:发表于2018-04-24 15:30 被阅读12次

    我们使用Scene来展示动画。
    首先我们获取场景,代码如下:

    Scene scene1 = Scene.getSceneForLayout(frameLayout, R.layout.animations_scenes1, this);
    

    frameLayout为盛放控件的总容器。
    animations_scenes1为盛放控件。
    this为上下文。

    我们写四个scene布局:
    animations_scenes1代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="20dp">
    
        <ImageView
            android:id="@+id/iv_green"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@color/theme_green_primary"/>
    
        <ImageView
            android:id="@+id/iv_red"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentRight="true"
            android:background="@color/theme_red_primary"/>
    
        <ImageView
            android:id="@+id/iv_blue"
            android:layout_marginTop="20dp"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_below="@id/iv_red"
            android:background="@color/theme_blue_primary"/>
    
        <ImageView
            android:id="@+id/iv_yellow"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_below="@id/iv_green"
            android:layout_alignParentRight="true"
            android:layout_marginTop="20dp"
            android:background="@color/theme_yellow_primary"/>
    </RelativeLayout>
    

    animations_scenes2 -- 4 置换ImageView的位置。要注意的是四个布局的id要一直,这样动画就可以在同id的控件间传动。

    下面是动画转换的资源文件slide_and_changebounds_sequential_with_interpolators.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
                   android:duration="500"
                   android:transitionOrdering="sequential">
        <slide android:interpolator="@android:interpolator/decelerate_cubic"/>
        <changeBounds android:interpolator="@android:interpolator/bounce"/>
    </transitionSet>
    

    最后调用方法转换:

    TransitionManager.go(scene1, TransitionInflater.from(AnimationsActivity2.this).inflateTransition(R.transition.slide_and_changebounds_sequential));
    

    相关文章

      网友评论

          本文标题:Android动画

          本文链接:https://www.haomeiwen.com/subject/fivllftx.html