animation的知识点分类

Animation & Property Animation 使用 Android中开发动效有两套框架可以使用,分别为 Animation 和 Property Animation; 相对来说,Animator比Animation要强大太多,两者之间的主要区别在于: 区别一:需要的Anroid API level不一样 Property Animation需要Android API level 11的支持,当然可以使用nineoldandroids. 阅读详情

1. 动画有什么用

2. animation如何实例化(new,或xml配置animationutil.load())

3. animation的分类(按动画素材分,帧动画,间补动画;按启动对象分:窗口动画,视图动画)


1) 帧动画 frame anim:AnimationDrawable      配置xml文件  animation-list  1.1)animation自定义 重写方法 applyTransformation() 改变

Transformation


2) 间补动画 tween anim:  AlphaAnimation , RotateAnimation, ScaleAnimation, TranslateAnimation 配置xml文件 alpha, rotate, scale, translate


3) 属性动画property anim: 

3.1) valueAnimator  addupdateListener() {  属性改变 }  

3.2) objectAnimator  

3.2.1) 属性 xxx   

3.2.2) setX() , getX()  

3.2.3) _offx 实例化

3.3) offint , offfloat, offobject, offproperty , propertyvalueHolder, setCurrentPlayTime(long playTime)


4) interpolator      帧动画 间补动画  android.view.animation.Interpolator在view包下,  属性动画 android.animation.TimeInterpolator 在animation包下

4.0 之后 Interpolator 继承自TimeInterpolator


4.animation的原理

5.如何播放gif 文件

6.如何结束动画。

view.clearAnimation()

7.如何做多个view的整体动画。

用container view  startAnimation();


8. 

Interpolator 的作用 

动画的变化频率  ( ~0  ----  ~1)相当于加速度 a

根据系统 SystemClock.uptimeMillis() (每次调用都获取)

计算出在(0 ~ duration ) 哪个时间点

再计算出normalizedTime (0 ~ 1)百分比

input 为 normalizedTime(0~ 1)

input 为 delta time / duration (0 ~ 1)

getInterpolation(float input)


9.

Transformation 作用

animation中通过applyTransformation() 来改变transformation 来作动画


10. 关于帧数

游戏一般到60 帧才流畅。 animator 睡眠时间是10ms 即100帧每秒。这个帧数可以调节

静态方法ValueAnimator.setFrameDelay(long frameDelay)


11.TypeEvaluator 作用 

根据Interpolator 计算出的fraction 和初始 、结束值来计算view 的属性值。

默认是 IntEvaluator 和 FloatEvaluator


12 window 动画 

setWindowAnimations() 只能有显示动画

activity overridePendingTransition(enterAnim, exitAnim) 可以设置出入动画

去掉activity间切换动画

findViewById(R.id.button2).setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        Intent intent = new Intent(OneActivity.this, TwoActivity.class);
        startActivity(intent );
        overridePendingTransition(0, 0);//去掉Activity切换间的动画
    }
});


启动动画

startActivity(new Intent(A.this, B.class));
overridePendingTransition(inAnim, outAnim);


结束动画

finish();
activity.overridePendingTransition(inAnim, outAnim);


全局activity动画

<style name="Theme.Test" parent="@android:style/Theme.Light.NoTitleBar">
    <item name="android:windowAnimationStyle">@style/Animation.Activity.Test</item>
</style>

<style name="Animation.Activity.Test" parent="@android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/activity_open_enter</item>
    <item name="android:activityOpenExitAnimation">@anim/activity_open_exit</item>
    <item name="android:activityCloseEnterAnimation">@anim/activity_close_enter</item>
    <item name="android:activityCloseExitAnimation">@anim/activity_close_exit</item>
           
    <item name="android:taskOpenEnterAnimation">@anim/activity_open_enter</item>
    <item name="android:taskOpenExitAnimation">@anim/activity_open_exit</item>
    <item name="android:taskCloseEnterAnimation">@anim/activity_close_enter</item>
    <item name="android:taskCloseExitAnimation">@anim/activity_close_exit</item>
           
    <item name="android:taskToFrontEnterAnimation">@anim/activity_open_enter</item>
    <item name="android:taskToFrontExitAnimation">@anim/activity_open_exit</item>
    <item name="android:taskToBackEnterAnimation">@anim/activity_close_enter</item>
    <item name="android:taskToBackExitAnimation">@anim/activity_close_exit</item>
</style>


android tween动画 配置文件知识点:


alpha 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <!-- fromAlpha和toAlpha是起始透明度和结束时透明度 -->
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:startOffset="500"
        android:duration="500"/>
</set>


rotate

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <!--
        fromDegrees:开始的角度
        toDegrees:结束的角度,+表示是正的
        当角度为负数——表示逆时针旋转
        当角度为正数——表示顺时针旋转
        pivotX:用于设置旋转时的x轴坐标
        例
           1)当值为"50",表示使用绝对位置定位
           2)当值为"50%",表示使用相对于控件本身定位
           3)当值为"50%p",表示使用相对于控件的父控件定位
        pivotY:用于设置旋转时的y轴坐标
      -->
    <rotate
        android:fromDegrees="0"
        android:toDegrees="+360"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="1000"/>
</set>



scale

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
   <!--
       起始x轴坐标
           止x轴坐标
           始y轴坐标
           止y轴坐标
           轴的坐标
           轴的坐标
     -->
   <scale
       android:fromXScale="1.0"
       android:toXScale="0.0"
       android:fromYScale="1.0"
       android:toYScale="0.0"
       android:pivotX="50%"
       android:pivotY="50%"
       android:duration="1000"/>
</set>


translate

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <!--
           始x轴坐标
           止x轴坐标
           始y轴坐标
           止y轴坐标
      -->
    <translate
        android:fromXDelta="0%"
        android:toXDelta="100%"
        android:fromYDelta="0%"
        android:toYDelta="100%"
        android:duration="2000"/>
</set>

3种动画都可以通过配置文件来实现。

 

帧动画:

setBackground() 即可


间补动画:

AnimationUtils.loadAnimation(context,R.anim.x);


属性动画:

AnimatorInflater.loadAnimator(context, R.anim.x);





Android中关于Animation和Animator动画的知识点总结 View Animation 1)补间动画tween 缺点,当发生偏移,并留在偏移后位置,点击对象事件,无反应,点击原来位置,有反应事件 这样造成了交互困难,用户体验不好 android:fillAfter="true"//动画出现在移动后位置 android:fillBefore="true"//回到动画播放前的位置 android:duration="1000"// 阅读详情

相关推荐

Android动画之一:Drawable Animation

准备写几篇博客讲解Android的动画,首先介绍Android动画的整体轮廓。 Android动画主要分为三大类 View Animation Drawable AnimationProperty Animation 其中Drawable Animations对大多数人来说是三者中最容易理解的,其实它就是很多书籍中提到的逐帧动画(frame-by-frame animation)。

Z 专栏 1万+

Android 避免Activity转场动画退出时候和系统自带的一起出现

Android 记Activity转场动画退出时候和系统自带的以前自定义转场动画一般是在style定义 <item name="android:windowIsTranslucent">true</item>//防止启动闪烁 <item name="android:windowAnimationStyle">@style/Animation.Activity.Translu

dhyjtt的博客 3947

solidworks vba二次开发配合问题

solidworks vba二次开发配合问题二次开发装配的步骤 二次开发装配的步骤 solidworks可以使用宏录制配合过程从而得到配合的vba代码,步骤如下: 1.选择两个配合的面(点、线等) 2. 建立配合 例如将两个圆柱面同心(图中高亮): 配合后 我们看一下宏录制的代码: Sub main() //激活solidworks接口 Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc //选择两个圆柱面,注意此处是根据坐标选择,不

Alejandro123的博客 3404

activity切换效果theme分析

1.关于博客动画效果制作 有很多有耐心,而且乐于分享的博友,不管是自己学习的经验还是研究成果都喜欢分享知识,尤其是技术的分享。看来我们都崇尚开源。对于技术类的文章,多数人喜欢先看到技术实现的效果,而后研究代码。文字的描述总没有图片演示来得直接。笔者也一直想做一些动画演示效果,这里说说怎么制作博客中的演示动画,其实像这类的功能直接用一些小工具就可以了。有朋友问到我动画是怎么做的,其实只是我用了工具

feiyangxiaomi的专栏 7790

十三、FLUENT蒸发/冷凝模型实战:从沸腾模拟到常温蒸发的UDF进阶

本文深入探讨FLUENT蒸发/冷凝模型的应用实践,从沸腾模拟到常温蒸发的UDF进阶。通过分析相变模型的核心逻辑、关键陷阱及UDF动态饱和温度场的实现,帮助工程师准确模拟不同场景下的蒸发/冷凝过程。结合太阳能蒸馏器等工程案例,提供优化方案和常见问题解决方案,显著提升模拟精度与效率。

weixin_42548893的博客 571

OSMDroid(1)——OSM简介,基础例子搭建

1.OSMDroid简介 Osmdroid是一款完全开源的地图基本操作SDK,相比于现在普遍使用的百度地图,高德地图,谷歌地图等最大的好处就是开源。 最近在做一个军方项目,要求完全不能联网,从开发到应用整个阶段都是在局域网进行,相比之下采用了OSMDroid这个SDK作为解决方案。 先来看OSMDroid,便是(OpenStreetMapForAndroid),后面都简称OSM...

robotskly的博客 6178

Android动画相关 -- 转场动画调试

我们经常会遇到转场动画不对的问题,那么如何调试转场动画呢? 1. 要动态打开window的调试 dumpsys window -d list 可以看到 2 . DEBUG_ANIM = false 打开window调试 dumpsys window -d enable 2 关闭调试 dumpsys window -d disable 2 2. 查看当前使用的动画 搜索 applyAnimation: anim= WindowManager: applyAnimation: anim=andro

板凳的专栏 727

win10 运行lisflood_8踩过的坑

1、安装cuda及VS2019 https://www.bilibili.com/read/cv7335974/ 2、netcdf.h头文件找不到问题 https://www.cnblogs.com/lyggqm/p/12926974.html https://blog.youkuaiyun.com/u011954296/article/details/54617048 3、编码问题 https://blog.youkuaiyun.com/qq_33485434/article/details/81196843 4、

我的笔记 4115

Android开发引导蒙版

需求:在界面上特定位置做出指引,一步步告诉用户是怎么操作 效果图: 实现思路: 在界面出来之后,获取相应的坐标,然后传坐标到startActivity一个新的界面,该界面背景是带透明度的,界面上添加一个根据坐标点镂空的TipsView 下面一步步实现 步骤一:自定义镂空控件TipsView 示例代码: public class TipsView extends FrameLayout { private final Context mContext; private int[] mCircleLocatio

聪哥的专栏 1236

Synology File Station 官方 API 指南总结(中文版)

本文总结了Synology File Station官方API指南的核心内容,详细介绍了如何通过HTTP/HTTPS请求与DSM系统交互实现文件管理功能。主要内容包括: 基础API操作流程:从获取API信息、登录认证到执行请求和登出的完整工作流 请求构造与响应解析:JSON格式的请求参数处理和响应结果分析 关键API功能分类: 文件信息获取(List/Info) 文件搜索(Search) 收藏夹管理(Favorite) 缩略图生成(Thumb) 目录大小计算(DirSize) 文件上传(Upload)等 错

weixin_46001686的博客 2454

Redis TLS 加密传输实战:从证书生成到安全配置

本文详细介绍了为Redis启用TLS加密传输的完整实战流程。从阐述TLS加密的必要性开始,逐步指导读者生成自签名CA和服务器证书,并深入解析Redis服务端的核心安全配置,包括端口设置、认证模式与性能优化。最后,提供了主流客户端连接示例及生产环境下的排错与运维最佳实践,帮助构建安全的Redis通信通道。

weixin_29274969的博客 515

Activity转场动画设置

在公司项目时,遇到一个问题,在此总结一下 当隐式启动一个Activity的时候,会有一个默认的启动动画,是个缩放效果,就造成每次别的应用启动音乐时,会有明显的动画效果,与设计不符,就需要去除掉默认的动画,查阅了相关的转场动画,在此记录一下 转场动画的设置方式 代码设置 通过overridePendingTransition方法进行设置,代码如下 先创建两个动画的xml文件 <set xm...

匿名的博客 894

从硬件异常到代码救赎:RH850内存访问错误(MAE)的深层诊断与艺术

本文深入探讨瑞萨RH850微控制器的内存访问错误(MAE)诊断与解决方法。针对程序跑飞和Flash Driver交互中的潜在陷阱,提供系统性硬件异常分析框架和防御性编程实践,帮助嵌入式开发者从底层机制到代码层面有效预防和修复MAE问题,提升系统稳定性。

pytorch8learner的博客 195

超详细 CSS动画-animation

css3 animation @keyframes

欢迎访问我的主页:https://www.bookbook.cc 3万+

INS/伪距组合导航(2)

伪距惯导组合导航

u014430081的博客 828

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

animation

这个属性是css3里的,具体的浏览器兼容性大家可以去Can I Use里面查看。 语法 animation: name duration timing-function delay iteration-count direction fill-mode play-state ; 定义和用法 animation 属性是一个简写属性,用于设置六个动画属性: animation-name ...

尊哥的博客 4155

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

css3基础知识点--animation动画

css3基础知识点–animation动画 参数: 1、@keyframes 定义关键帧动画 2、animation-name 动画名称 3、animation-duration 动画时间 4、animation-timing-function 动画曲线 linear 匀速 ease 开始和结束慢速 ease-in 开始是慢速 ease-out 结束时慢速 ease-in-out 开始和结束时慢速 steps 动画步数 5、animation-delay 动画延迟 6、animation-iteratio

yinviolet的博客 492

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Unity/Animation -- 创建Animation Clip

在游戏开发过程中,动画是一个不可或缺的环节,没有动画变换的人物并不能带给玩家很好的代入感,而Unity作为一个强大的游戏引擎,自然包括了复杂的动画系统,即Animation System。

路人王小二的博客 4万+

animation动画全解

animation八大属性共用 代码 HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=

技术无止境,人生仍探索。 8544

Animation知识点整理

一、模型设置:按照图中参数设置,模型就会得到一个Animation组件 二、脚本控制 播放 public Animation animation; public void PlayAnimation(string clip) { if(string.IsNullOrEmpty(clip)) { //未指定动画C...

Liquify_M的博客 537

animation 循环_animation

Animation指定一个周期持续时间内的动画。当然需要该属性支持动画。使用时需要指定周期时间和关键帧名称上述代码鼠标放在div上会执行名为move的动画,持续时间为4秒。@keyframes move定义关键帧,按上述比例将时间分为5个关键帧节点,没到达一个关键帧执行当前关键帧语句。Animation 共有8个属性分别如下。animation-name'>:检索或设置对象所应用的...

weixin_39763033的博客 1958

animation的用法:

1.animation animation是一个简写属性,用来设置做某个动画,属性内容包括: animation-name: 规定动画的名字。这个动画名是由@keframes设置的,下面有关于@keyframes的详细内容。 animation-duration: 规定动画要执行的时间。参数为:一个数字n,单位为毫秒。 animation-timing-function: 规定动画的...

qq_29704567的博客 5687

前端css中animation(动画)的使用

animation常伴随着动画帧`@keyframes`一起使用。本文主要说明animation都有啥属性,然后简单的进行使用。 animation动画有多个属性,每个属性也有相应相关的值。另外我们使用过程中也可以使用简便方法,如`“animation:”+后面各属性的值,用空格隔开+“;”`的形式设置动画效果。举例如:`animation: box1 3s linear 2s infinite;`

小蜗牛764号的博客 1万+

css3 animation动画

animation <a href="javascript:;" class="more"><img src="images/00-more.png" alt=""></a> @keyframes more{ from { transform: translateY(-30px); } to { transform: translateY(0px); } } .more{ position: fixed; bottom: 40px; right:

qq_43618136的博客 2137

css中animation属性animation-timing-function知识点以及属性值steps()详解

在animation中最重要的其实就是时间函数(animation-timing-function)这个属性,他决定了你的动画将以什么样的速度执行,所以最关键的属性值也就是cubic-bezier(n,n,n,n),你平时用到的linear、ease、ease-out等都是基于这个属性值的,那么我们接下来就看看这个东西到底是什么含义。 这个时间函数是通过一个坐标反映出来的: 这个就是tim...

小白的博客 1万+

CSS动画-Animation

动画是css3中具有颠覆性的特征之ー,可通过设置多个节点来精确控制一个或一组动画常用来实现复杂的动画效果。 相比较过渡,动画可以实现更多变化,更多控制的效果。创建动画的原理是,将一套 样式逐渐变化为另一套样式。在动画过程中我们能够多次改变这套 样式。以百分比来规定改变发生的时间,或者通过关键词 和 ,等价于 和 。 就是需要绑定的的名称 这就是定义了一个名称为的动画,被元素调用 规定动画完成一个周期所花费的时间 意思是指定元素的时间向右移动 规定动画的速率曲线,也就是动画执行过程的

温情 6163
上一篇: 广播和广播接受者知识点分类
下一篇: android dp 表示的真正含义
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值