Transitions框架学习(一)—— 创建一个场景

概述

场景用于存储视图结构的状态,包括所有的View对象和它们的属性值。Transitions框架可以在开始场景和结束场景之间应用动画。开始场景通常自动由用户界面的当期状态决定。对于结束场景,框架允许通过资源文件创建或者通过代码动态创建。

本节将介绍如何在应用程序中创建场景以及如何定义场景动作,下一节将介绍如何在两个场景之间应用转场效果。

注意:该框架也可以不使用场景而只对单独一个视图结构执行动画。但是本节内容是学习使用转场框架的基础。

通过布局资源文件创建一个场景

可以直接通过布局资源文件来创建一个场景实例。该种方式适合于被文件锁描述的视图结构在整个程序中保持基本稳定的情况。获取到的场景代表创建该场景实例的那个时间点的视图结构的状态。如果改变了视图结构,需要重新创建场景实例。框架将通过布局文件中的整个视图结构来创建场景,而不允许仅通过其中一部来创建。

通过布局文件来创建场景时,获取场景的根视图并作为一个ViewGroup对象,然后调用Scene.getSceneForLayout()方法来创建。该方法需要传递用于创建场景的布局文件的ID和该布局文件的根视图作为参数。

定义用于创建场景的布局文件

The code snippets in the rest of this section show you how to create two different scenes with the same scene root element. The snippets also demonstrate that you can load multiple unrelated Scene objects without implying that they are related to each other.
以下代码将展示如何通过相同的场景根视图元素来创建两个不同的场景,代码同样表明,可以加载不相关的场景对象,这些对象之间并没有隐含的关联性。

布局文件中包含如下布局定义:

  • Activity的主视图,其中包括了一个文本标签和一个子视图。
  • 用于代表第一个场景的相对布局,其中包括两个文本。
  • 用于代表第二个场景的相对布局,依然包括之前的两个文本,但是顺序发生改变。

这样定义之后,所有的动画效果将发生在Activity主视图中的子布局中,而主布局中的文本标签将不受任何影响。

Activity的主布局如下:
res/layout/activity_main.xml

<LinearLayout xmlns:android="http://schem
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值