【约束布局】ConstraintSet 约束集 ( 简介 | 约束属性集合 | 约束集初始化 | 约束集应用到布局中 | 关键帧动画 | TransitionManager 使用 )(二)

简介: 【约束布局】ConstraintSet 约束集 ( 简介 | 约束属性集合 | 约束集初始化 | 约束集应用到布局中 | 关键帧动画 | TransitionManager 使用 )(二)

VII . ConstraintSet 关键帧动画 支持的属性


关键帧动画支持的属性 :



① 不适配所有属性 : 不是所有的属性都适用于关键帧动画 ;


② 适配属性 : 组件的 尺寸 , 位置 , 旋转 , 缩放 , 等属性 , 可以使用关键帧动画生成过渡帧 ;


③ 不适配属性 : 组件的 颜色 , 透明度 , 等属性 , 无法使用关键帧动画生成过渡帧 ;




VIII . ConstraintSet 关键帧动画 示例代码


1 . 开始帧 布局文件 :



<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:id="@+id/constraintLayout"
    android:onClick="onClick">
    <Button
        android:id="@+id/button"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0"/>
</androidx.constraintlayout.widget.ConstraintLayout>



2 . 目的帧 布局文件 : 两帧的区别是 按钮的 位置 , 大小 , 角度 发生了改变 ;



<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:id="@+id/constraintLayout">
    <Button
        android:id="@+id/button"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintHorizontal_bias="1"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1"
        android:rotation="210"/>
</androidx.constraintlayout.widget.ConstraintLayout>


3 . Activity 代码 :



package kim.hsl.cckfa;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
import android.os.Bundle;
import android.transition.TransitionManager;
import android.view.View;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    /**
     * 点击触发 关键帧动画
     * @param view
     */
    public void onClick(View view){
        //1 . 获取 约束布局 组件 ( 设置 关键帧动画的 开始帧 )
        ConstraintLayout constraintLayout = findViewById(R.id.constraintLayout);
        //2 . 创建 约束集 对象
        ConstraintSet constraintSet = new ConstraintSet();
        //3 . 从 约束布局 中加载约束集
        constraintSet.load(this, R.layout.activity_main2);
        //4 . 设置 关键帧动画
        TransitionManager.beginDelayedTransition(constraintLayout);
        //5 . 在 约束布局 中 , 应用约束集属性 ( 设置 关键帧动画的 结束帧 )
        constraintSet.applyTo(constraintLayout);
    }
}




4 . 关键帧动画效果 :

image.png





示例代码地址 : GitHub - ConstraintLayout_ConstraintSet_Key_Frame_Animation ;


目录
相关文章
|
6月前
|
存储 数据库 Python
视图函数中创建模型, 并设置外键
视图函数中创建模型, 并设置外键。
34 1
|
存储 搜索推荐 开发工具
怎么去约束代码的统一性
当你着手的项目随着协同人员的越来越多,始终会面临着一个问题,那就是代码的统一性,俗话说,千人千面,放在代码里,也是百家争鸣,毕竟每个人都有自己的思想,也有着自己书写代码的风格,如何让一个项目,朝着一个统一的风格前去,这个是很难的,难的不是规范的制定,而是规范的落实。
|
存储 关系型数据库 MySQL
第13章_约束
第13章_约束
132 0
|
Oracle 关系型数据库 索引
唯一约束和唯一索引区别
唯一约束和唯一索引区别
908 0
|
数据库
因祸得福——创建视图时改变字段的类型
因祸得福——创建视图时改变字段的类型
141 0
|
数据可视化 开发者
使用VFL创建约束对象
使用VFL创建约束对象
111 0
|
关系型数据库 MySQL 索引
【MySQL8.0学习笔记】约束:主键约束、自增长约束、非空约束、唯一性约束、默认约束与零填充约束
文章目录 1 MySQL约束简介 2 主键约束 2.1 主键约束的操作 2.1.1 添加单列主键 2.1.2 添加多列联合主键 2.1.3 通过修改表结构的方式添加主键 2.1.4 删除主键 3 自增长约束 3.1 指定自增长字段的初始值 3.1.1 delete和truncate在删除后自增列的变化 4 非空约束 5 唯一约束 6 默认约束 7 零填充约束(zerofill)
|
Android开发
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(二)
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(二)
540 0
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(二)
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(一)
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(一)
223 0
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(一)
【约束布局】ConstraintLayout 之 Chains 链式约束 ( Chains 简介 | 代码 及 布局分析 | 链头设置 | 间距设置 | 风格设置 | 权重设置 )(三)
【约束布局】ConstraintLayout 之 Chains 链式约束 ( Chains 简介 | 代码 及 布局分析 | 链头设置 | 间距设置 | 风格设置 | 权重设置 )(三)
377 0
【约束布局】ConstraintLayout 之 Chains 链式约束 ( Chains 简介 | 代码 及 布局分析 | 链头设置 | 间距设置 | 风格设置 | 权重设置 )(三)