Animation动画

位移、翻转、透明、缩放

共有方法:
1、setRepeatMode();设置重复模式
常用:

Animation.RESTART 每次从头开始
Animation.REVERSE 反复开始

2、setRepeatCount();设置重复次数
3、setDuration(3000);设置动画执行的时间(单位:毫秒)
4、view.startAnimation(具体对象) 开始动画
5、setFillAfter(true); 动画执行完之后是否保留最终状态
6、setFillBefore(false); 动画执行完之后是否恢复执行前状态
7、setStartOffset(500);设置延时启动

①、透明:AlphaAnimation
1、new AlphaAnimation(from, to) 1:完全不透明,0完全透明

2、 或者:res的anim文件夹中:

<alpha
android:fromAlpha="1"
android:toAlpha="1"
android:duration="3000"
android:repeatCount="1"
android:repeatMode="reverse"/> 

通过AnimationUtils.loadAnimation(resId);在Activity引用

②、旋转:RotateAnimation

newRotateAnimation(fromDegrees,toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue); 

参数1:fromDegrees:旋转起始角度
参数2:toDegrees:旋转结束角度 以下4个参数用来设置旋转圆心:
参数3:pivotXType:旋转类型,表示以哪个位置为旋转的基点横坐标。
共有3个:
Animation.ABSOLUTE,一个绝对像素值
Animation.RELATIVE_TO_SELF 计算距离时看的是自己的宽高
Animation.RELATIVE_TO_PARENT.计算距离时看的是其父控件的宽高
参数4:pivotXValue:
0-1f之间的一个float值,表示实际旋转时圆心相对基点的水平偏移量,0表示不偏移,0.5f是半个控件长度 ,1表示偏移当前控件宽度
参数5:pivotYType: 同参数3.
参数6:pivotYValue 同参数4
实现:


③、缩放:ScaleAnimation
new ScaleAnimation(fromX, toX, fromY, toY)
1到0的float值,表示起始结束大小
也可以1到
1代表当前大小,小于1代表缩小的倍数,大于1代表放大的倍数

new ScaleAnimation(fromX, toX, fromY, toY, pivotXType, pivotXValue, pivotYType, pivotYValue)意义同旋转。。。
实现:

④、位移:TranslateAnimation

new TranslateAnimation(fromX, toX, fromY, toY)

1到0的float值,表示起始横纵坐标

new TranslateAnimation( fromXType, fromXValue, toXType, toXValue, fromYType, fromYValue, toYType, toYValue);

意义同旋转。。。

<translate
android:duration="1000"
android:fromXDelta="-100%"
android:toXDelta="0"
/>

实现:

注意:起始的0,0值得是控件当前位置,不仅仅时屏幕的左上角

⑤、AnimationSet 动画集合
AnimationSet 动画集合,里面可放置多个动画效果
animationSet.addAnimation() 添加动画到动画集或者:
res中

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/bounce_interpolator" >
</set>

实现:

⑥、Interpolator 动画修改器
Interpolator:基本动画的修改器
修改器属性:
1、AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。
2、DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。
3、CycleInterpolator:动画从开始到结束,变化率是循环给定次数的正弦曲线。
4、AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。
5、LinearInterpolator:动画从开始到结束,变化率是线性变化。
6、OvershootInterpolator 向前甩一定值后再回到原来位置
7、 BounceInterpolator 动画结束的时候弹起。
8、AnticipateInterpolator 开始的时候向后然后向前甩
9、AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值
用法:
用法简单,只需要new出动画效果,通过当前动画对象执行setInterpolator(传入具体对象使用)方法。 以位移–>BounceInterpolator 为例:

⑦、通过xml来设置动画
在res中新建anim文件夹和xml

xml中实际为AnimationSet集合

重复的次数在某个动画中能生效,但是在Set标签里不能
!!!注:在xml设置大小,单位为px,并且可以填写% 100%代表当前空间宽高—100%p代表当前布局宽高!!!
Activity调用:


在xml中也可以使用动画修改器

⑧、AnimationStyle 动画风格
可以用已有的动画来修改其他控件的动画风格,如弹窗,切换等
setAnimationStyle

<style name="AnimationFade">
<!-- PopupWindow左右弹出的效果 -->
<item name="android:windowEnterAnimation">@anim/in</item>
<item name="android:windowExitAnimation">@anim/out</item>
</style> 

扩展
1、切换界面时的划动效果
①、在anim中
创建划动的动画 (切换的动画)

activity_in.xml—–>2界面从右屏幕宽度位置,向左滑进至0位置

activity_out.xml—–>1界面从屏幕的0位置,向左出至负屏幕位置

②、设置切换回的动画(按下BACK键)

back_in.xml—–>1界面从屏幕负屏幕宽度位置,向右滑进至0位置

back_out.xml—–>2界面从屏幕的0位置,向右滑出至屏幕宽度位置

③、java代码:
1界面:

2界面(在按下BACK键后返回1界面,需要在2界面覆写BACK方法)


效果:
在1界面按下监听,界面向左滑动显示2页面,在2界面按下BACK向右滑动回到1界面

2、Dialog 从上向下滑出—>默认直接弹出在界面
①、对话框:

②、在anmi中设置动画–>滑出与滑入

dig_in.xml 进入的动画 —->改变Y坐标 从上往下弹

dig_out.xml 出去的动画 —->改变Y坐标 从下往上回

③、java:

在窗体动画中传入的是样式style,所以应该将②中的动画封装到style中
④、封装动画


⑨、LayoutAnimationController

new LayoutAnimationController(ani ,delay)

可作用于ListView实现单个条目动画效果:

lv.setLayoutAnimation(controller);
lv.startLayoutAnimation();

或:

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/my_anim"
android:delay="1" />
LayoutAnimationController layoutAnimationController= AnimationUtils.loadLayoutAnimation(this,R.anim.layoutanim);

java:

layout.xml:—->引用test1动画,延时0.7秒执行

test1.xml 位移(0,0位置 重复2遍)、透明4秒进入

Android_Animation动画相关推荐

  1. Android Animation (安卓动画)概念简介

    Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...

  2. Android动画之帧动画和补间动画

    Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...

  3. Android 动画 ViewPropertyAnimator 的使用

    ViewPropertyAnimator 说明: ViewPropertyAnimator 可为View对象上的选择属性启用自动和优化的动画, ViewPropertyAnimator 不是由调用方构 ...

  4. Android ViewAnimationUtils (动画) 的使用

    先看下ViewAnimationUtils  实现的几个常见的效果图如下: ViewAnimationUtils  的作用: 设置剪切圆动画的动画制作器 一般的使用如下: Animator revea ...

  5. Android AnimationUtils (动画)的使用

    AnimationUtils  其实就是补间动画(Tween Animation) 在xml 中的写了动画java 中调用 这边打算就写一个demo 简答的记录下它的使用详细的请看 点击查看,这篇博客 ...

  6. Android ProgressBar 加载中界面实现(loading 动画) 实现菊花的效果

    实现的效果图如下: 使用方法ProgressBar ,如果感觉 这个动画不是自己想要的,需要根据ui的图片来实现只需要将xml中的animated-rotate 修改为animation-list 贴 ...

  7. Android 属性动画(Property Animation) ObjectAnimator的介绍

    先说下属性动画与视图动画的区别: 视图动画系统仅提供为 View 对象添加动画效果的功能,因此,如果您想为非 对象添加动画效果,则必须实现自己的代码才能做到.视图动画系统也存在一些限制,因为它仅公开 ...

  8. Android 属性动画(Property Animation) ValueAnimator 的介绍

    先说下属性动画与视图动画的区别: 视图动画系统仅提供为 View 对象添加动画效果的功能,因此,如果您想为非 对象添加动画效果,则必须实现自己的代码才能做到.视图动画系统也存在一些限制,因为它仅公开 ...

  9. Android 补间动画(Tween Animation)

    Tween Animation(补间动画): Tween动画,通过对View的内容进行一系列的图形变换 (包括平移.缩放.旋转.改变透明度)来实现动画效果.动画效果的定义可以采用XML来做也可以采用编 ...

最新文章

  1. Oracle 11g学习笔记(四)
  2. ObjectArx开发对txt文本文件的操作一例
  3. python中loop函数_python + Django 的forloop功能试验讲解
  4. python经典程序-python经典趣味24点游戏程序设计
  5. [云计算]两层网络、三层网络的理解
  6. 如何在 AirPods Pro 上安装 Apple 的 Beta 版固件?
  7. mysql数据库创建删除带横杠的数据库名
  8. Python爬虫爬取豆瓣图书的信息和封面,放入MySQL数据库中。
  9. 弯曲时空量子场论的历史与现状 (上)
  10. python操作个人简历,python爬虫开发工程师应届生个人简历模板(Word可以直接使用)...
  11. python--xlsx文件的读写
  12. hp 430g8 笔记本摄像头黑屏问题解决
  13. error LNK2019 无法解析的外部符号 __imp__accept@12
  14. 体系切换,华为IPD的研发管理之道(上)
  15. f4ck论坛的小游戏(灌水贴)
  16. Oracle的32位ODBC驱动
  17. 计算机二级python刷题笔记(1)
  18. ※ 去年我年薪 30W,今年我一天做 3 顿饭
  19. angular指令心得(ng-model)
  20. Unity3D 鼠标检测世界中的游戏对象

热门文章

  1. 神经网络算法入门和代码
  2. 2023年光模块行业发展趋势及未来前景
  3. python 类里面函数的self
  4. Groupid和ArtifactId 名词解释和命名规范
  5. Apple内购(IAP)恢复购买产品在网络问题导致超时情况下的处理
  6. Windows单独安装QT及VS和QT联合开发环境安装
  7. 李氏转换/ArrayList/Hash C#编程
  8. 洛谷-1273 有线电视网
  9. 保护用户隐私安全,基于OAID进行个性化广告推荐
  10. java 计算器 小程序_java 学习 ——计算器小程序