android动画文档,Android 动画系统汇总

Android动画系统的种类:

1. 属性动画 (Property Animation)

2. 补间动画 (Tween Animation)

3. 帧动画     (Frame Animation)

4. Drawable

属性动画(Property Animation):

可以改变控件对象属性的对象,譬如控件的位置,透明度,旋转等。

包含两个基本的Animator:

1.ValueAnimator : 提供一个动画时序引擎,用来计算动画时序内,动画的值。使用方式:

private void valueAnimatorTest(final View view) {

ValueAnimator anim = new ValueAnimator(); //创建ValueAnimator

anim.setDuration(2000);  // 设置动画时常

anim.setObjectValues(new My()); //设置自定义初始值

anim.setEvaluator(new TypeEvaluator() {

@Override

public My evaluate(float fraction, My startValue, My endValue) {

System.out.println("fraction = " + fraction);

// fraction:动画执行时间片段

My my = new My();  // My是一个实体类,可以自定义View的各个属性值

return my;

}

});

anim.addUpdateListener(new AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator valueAnimator) {

My value = (My)valueAnimator.getAnimatedValue(); // 得到当前动画片段的计算的自定义值,用来改变控件的属性

}

});

anim.start();

}

2. ObjectAnimator:是ValueAnimator的子类,这里对属性进行了一层逻辑实现,使用者可以直接通过动画改变控件属性。translationX、translationY            控制View相对于父布局平移距离

rotation、rotationX、rotationY     控制旋转

scaleX、scaleY                            控制X 、Y轴方向的缩放

pivotX、pivotY                             缩放和旋转的支点,默认为View的中心

alpha                                            透明度(0~1)

x、y                                              在父控件中的位置(注意和translationX、translationY的区分)使用方式:

1. 控制单个属性动画

ObjectAnimator anim = ObjectAnimator.ofFloat(view, "scaleX", 1.0F,  0.0F).setDuration(500);

anim.start();

2. 控制多个属性动画

ObjectAnimator anim = ObjectAnimator.ofFloat(view, "anywords", 1.0F,  0.0F).setDuration(500);

anim.addUpdateListener(new AnimatorUpdateListener(){

@Override

public void onAnimationUpdate(ValueAnimator animation){

float cVal = (Float) animation.getAnimatedValue();

view.setAlpha(cVal);

view.setScaleX(cVal);

view.setScaleY(cVal);

}

}

anim.start();

补间动画 (Tween Animation)

比较简单,与属性动画相比,只能改变控件的显示状态,不能实际改变控件属性值,主要有四中:

1. ScaleAnimation

2. RotateAnimation

3. AlphaAnimation

4. TranslateAnimation

补间动画相对简单,具体实现方式可参考其构造方法即可。

帧动画    (Frame Animation)

顾名思义,就是与电影的播放原理一样,逐帧显示图片达到动画的效果,实现方式:

1. 在res目录下建立 drawable 文件夹

2. 在drawable文件夹目录下创建  frame.xml 文件

3. frame.xml文件格式

4. 应用在ImageView中

....

android:src = "@drawable/frame"

/>

5.  代码启动动画AnimationDrawable animationDrawable = (AnimationDrawable) view.getDrawable();

animationDrawable.start();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云CDN操控2.0版本正式发布

简介: 2021年8月,阿里云边缘云CDN完成过去3年来最大的一次版本升级。 2021年8月,阿里云边缘云CDN完成过去3年来最大的一次版本升级。本次升级根据上万企业客户的使用反馈和行业应用特征,从简单开通到个性化定制,从内容…

用python怎么样实现图像二值化_使用Python+OpenCV如何实现图像二值化

使用PythonOpenCV如何实现图像二值化发布时间:2020-10-26 14:15:52来源:亿速云阅读:77作者:蛋片鸡这篇文章运用简单易懂的例子给大家介绍使用PythonOpenCV如何实现图像二值化,内容非常详细,感兴趣的小伙伴们…

向xxxhub发了一个数据包,发现了···

作者 | 轩辕之风来源 | 编程技术宇宙那天,我突然想到一个问题:当我访问那个让万千宅男程序员为之着迷的GitHub时,我电脑发出的数据包是如何抵达大洋彼岸的GitHub服务器的呢,这中间又要经过哪些节点呢?让我们一起来探究…

使用 Flink Hudi 构建流式数据湖

简介: 本文介绍了 Flink Hudi 通过流计算对原有基于 mini-batch 的增量计算模型的不断优化演进。 本文介绍了 Flink Hudi 通过流计算对原有基于 mini-batch 的增量计算模型不断优化演进。用户可以通过 Flink SQL 将 CDC 数据实时写入 Hudi 存储,且在即将…

android获取版本号报错,Android开发:获取安卓App版本号的方法步骤

在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版本号就是必须要有的功能。Android的App版本号相关内容比iOS的App版本号内容要多,而且iOS版的App版本信息跟Android的还不一样。本篇…

运营也用的起来的数据分析工具:Quick BI即席分析详解

简介: 数据部门是一个容易被投诉的“高危”部门,需求响应慢、数据准确性不高会影响业务的发展。 然而数据分析师每周动辄就有几十个需求在手,无限的加班也无法解决所有问题,到底怎样才能改变BI分析师的需求响应问题呢?…

腾讯云连续四年排名中国音视频解决市场第一,头部厂商中RTC增速第一

1月11日,记者了解到,国际数据公司(IDC)发布的《中国视频云市场跟踪(2021上半年)》(下简称“报告”)显示,2021上半年中国视频云市场规模达到43.7亿美元,同比增长达到38.7%。其中,音视频解决方案市…

iphone版 天行skyline_SkyLine

1、创建私钥openssl dsaparam -out dsaparam.pem 2048; openssl gendsa-out privkey.pem dsaparam.pem​2、创建证书请求文件csr(根据提示填内容)openssl req -new -key privkey.pem -out cert.csr3、创建证书​openssl req -new -x509 -key privkey.pem -out cacert.pem-days …

【产品动态】解读Dataphin流批一体的实时研发

简介: Dataphin作为一款企业级智能数据构建与管理产品,具备全链路实时研发能力,从2019年开始就支撑可集团天猫双11的实时计算需求,文章将详细介绍Dataphin实时计算的能力。 背景 每当双11全球购物狂欢节钟声响起,上千…

android实现10ms定时器,Android三种实现定时器的方法

方法一、使用Handler和Thread(线程)实现定时器package com.xunfang.handerDemo;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.TextView;public class HanderDemoActivity extends Activi…

springboot设置默认值_spring boot jpa存储数据的默认值为java的默认值

问题描述使用jpa的save方法保存数据后返回的实体类为java数据类型的默认值问题出现的环境背景及自己尝试过哪些方法环境背景: 用户新增功能,调用新增接口后根据返回对象的id去查询等级表的等级.尝试方法:最开始返回的是null,但是数据库的字段默认值设置的是1,后来实体类加上Dyn…

Aruba与中国电信国际有限公司达成战略合作 助力中国企业扬帆出海

2022年1月12日,慧与科技公司 (NYSE: HPE) 旗下Aruba日前宣布,与中国电信国际有限公司(CTG)签署MSP(托管服务运营商)战略合作伙伴协议,Aruba的产品将纳入中国电信国际有限公司的主营产品线。协议…

模仿Spring实现一个类管理容器

简介: 项目的初衷是独立作出一个成熟的有特色的IOC容器,但由于过程参考Spring太多,而且也无法作出太多改进,于是目的变为以此项目作为理解Spring的一个跳板,与网上的一些模仿Spring的框架不同,本项目主要是针对注解形式 概述 项目的初衷是独立作出一个成熟的有特色…

nginx python cgi_Python的CGIHTTPServer交互实现详解

介绍对于服务器后端开发者而言,有时候需要把自己的一些服务直接暴露给PM或者其他RD使用,这个时候需要搭建一套web服务可以和前端用户做简单交互,按照最常规的做法,一般是用Apache或者Nginx作为webserver后端使用cgi或者fcgi程序或…

湖仓一体化的路,很多人都只走了一半

2022已至,如果回看2021,这一年无疑是数据的价值进一步体现的一年。数据应用场景不断丰富,从工业、交通、金融到制造,几乎无处不在。当然,数据价值的迅速提升也给开发者和相关企业带来了新的问题。数据量的爆发让存储成…

学术顶会再突破!计算平台MaxCompute论文入选国际顶会VLDB 2021

简介: VLDB 2021上,阿里云计算平台MaxCompute参与的论文入选,核心分布式调度执行引擎Fangorn、基于TVR Cost模型的通用增量计算优化器框架Tempura等分别被Industry Track、Research Track录取。 一、顶会概览 VLDB 2021上,阿里云…

linux从新手到高手,1.3 养成良好的Linux操作习惯免费阅读_循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用免费全文_百度阅读...

看出点玄机了吗?在上例中,其实“/etc/*”就代表了/etc目录下的所有文件以及子目录,而这刚好是zip命令“-r”选项完成的功能。5)将/opt/etc.zip压缩文件全部解压到/etc目录下,除了etc/inittab文件之外,并且在解压过程中…

技术干货 | 应用性能提升 70%,探究 mPaaS 全链路压测的实现原理和实施路径

简介: 全链路压测方案下,非加密场景下至少有 70% 的性能提升,加密场景下 10%的性能提升,并在 MGS 扩容完成后可实现大幅的性能提升,调优的结果远超预期。 业务背景 随着移动开发行业的步入存量时代,App 整…

python二叉树去重_python二叉树学习分享

介绍:树形结构是应用相当广泛的一种非线性结构,建立与应用大多使用链表来处理,当然也可用连续的列表来实现常见概念:满二叉树:如果树高位H,树的结点总数为2*H-1,H>0,称为满二叉树完全二叉树&…

投稿指南 | 云计算领域最前沿资讯、技术,期待您的专业解读!

我们是谁?CSDN云计算是CSDN旗下官方账号,提供云计算、大数据、虚拟化、数据中心、OpenStack、CloudStack、机器学习、智能算法等相关云计算观点、云计算技术、云计算平台、云计算实践、云计算产业咨询等服务。内容平台方面,我们的目标读者主要…