详谈Android动画效果translate、scale、alpha、rotate

动画类型

Android的animation由四种类型组成

XML中

alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果

JavaCode中

AlphaAnimation 渐变透明度动画效果
ScaleAnimation 渐变尺寸伸缩动画效果
TranslateAnimation 画面转换位置移动动画效果
RotateAnimation 画面转移旋转动画效果

Android动画模式

Animation主要有两种动画模式:

一种是tweened animation(渐变动画)

XML中 JavaCode
alpha AlphaAnimation
scale ScaleAnimation

一种是frame by frame(画面转换动画)

XML中 JavaCode
translate TranslateAnimation
rotate RotateAnimation

Android动画解析

alpha xml 淡出效果

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
  android:fromAlpha="1.0"
  android:toAlpha="0.0"
  android:duration="500" />
</set>
<!--
  fromAlpha:开始时透明度
  toAlpha: 结束时透明度
  duration:动画持续时间 -->

alpha xml 淡入效果

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
  android:fromAlpha="0.0"
  android:toAlpha="1.0"
  android:duration="500" />
</set>
<!--
  fromAlpha:开始时透明度
  toAlpha: 结束时透明度
  duration:动画持续时间 -->

rotate.xml 旋转效果:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
  android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  android:fromDegrees="300"
  android:toDegrees="-360"
  android:pivotX="10%"
  android:pivotY="100%"
  android:duration="10000" />
</set>
<!--
 fromDegrees  动画开始时的角度
 toDegrees   动画结束时物件的旋转角度,正代表顺时针
 pivotX  属性为动画相对于物件的X坐标的开始位置
 pivotY  属性为动画相对于物件的Y坐标的开始位置  -->

scale.xml 缩放效果:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
  android:interpolator= "@android:anim/decelerate_interpolator"
  android:fromXScale="0.0"
  android:toXScale="1.5"
  android:fromYScale="0.0"
  android:toYScale="1.5"
  android:pivotX="50%"
  android:pivotY="50%"
  android:startOffset="0"
  android:duration="10000"
  android:repeatCount="1"
  android:repeatMode="reverse" />
</set>  

<!--
fromXDelta,fromYDelta    起始时X,Y座标,屏幕右下角的座标是X:320,Y:480
toXDelta, toYDelta   动画结束时X,Y的座标 --> <!--
interpolator          指定动画插入器
常见的有加速减速插入器     accelerate_decelerate_interpolator
加速插入器        accelerate_interpolator,
减速插入器        decelerate_interpolator。
fromXScale,fromYScale,     动画开始前X,Y的缩放,0.0为不显示, 1.0为正常大小
toXScale,toYScale,     动画最终缩放的倍数, 1.0为正常大小,大于1.0放大
pivotX, pivotY     动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始
startOffset,        动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,
          单位毫秒 duration,一次动画效果消耗的时间,单位毫秒,
          值越小动画速度越快 repeatCount,动画重复的计数,动画将会执行该值+1次
          repeatMode,动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。
          restart为重新执行,方向不变 -->

translate.xml 移动效果:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
  android:fromXDelta="320"
  android:toXDelta="0"
  android:fromYDelta="480"
  android:toYDelta="0"
  android:duration="10000" />
</set>
<!--
fromXDelta,fromYDelta  起始时X,Y座标,屏幕右下角的座标是X:320,Y:480
toXDelta, toYDelta   动画结束时X,Y的座标 -->

以上这篇详谈Android动画效果translate、scale、alpha、rotate就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Android 动画之ScaleAnimation应用详解

    android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimation 旋转动画效果 本节讲解ScaleAnimation 动画, ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, flo

  • Android 动画之TranslateAnimation应用详解

    android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimation 旋转动画效果 本节讲解TranslateAnimation动画,TranslateAnimation比较常用,比如QQ,网易新闻菜单条的动画,就可以用TranslateAnimation实现, 通过TranslateAnimation(float fromXDelta, float toXD

  • Android 动画之RotateAnimation应用详解

    android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimation 旋转动画效果 本节讲解RotateAnimation 动画, RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivot

  • 详谈Android动画效果translate、scale、alpha、rotate

    动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果 Android动画模式 Animation

  • Android动画效果之自定义ViewGroup添加布局动画(五)

    前言: 前面几篇文章介绍了补间动画.逐帧动画.属性动画,大部分都是针对View来实现的动画,那么该如何为了一个ViewGroup添加动画呢?今天结合自定义ViewGroup来学习一下布局动画.本文将通过对自定义图片选择控件设置动画为例来学习布局动画. 自定义一个显示多行图片的ViewGroup: 这里不再对自定义控件做解说,想了解的可以看下以下几篇文章  •Android自定义控件之基本原理(一)  •Android自定义控件之自定义属性(二)  •Android自定义控件之自定义组合控件(三)

  • Android实现动画效果详解

    目前Android平台提供了两类动画一类是Tween动画,第二类就是 Frame动画,具体内容介绍请看下文: 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似. 实现动画有两种方式:一种使用XML文件(文件放在res/anim),一种直接代码搞定  1.透明度控制动画效果alpha <!-- 透明度控制动画效果alpha 浮点型值: fromAlpha 动画起始时透明

  • Android xml实现animation的4种动画效果实例代码

    animation有四种动画类型:分别为alpha(透明的渐变).rotate(旋转).scale(尺寸伸缩).translate(移动),二实现的分发有两种,一种是javaCode,另外一种是XML,而我今天要说的是XML实现的方法,个人感觉javaCode的实现方法比xml要简单,所以有需要的可以自己去找找资料看看. 先给大家展示下效果图,如果大家感觉还不错,请继续往下阅读. 下面是我的四个xml文件,分别代表这四种动画类型. alpha.xml COde: <?xml version=&quo

  • Android动画之渐变动画(Tween Animation)详解 (渐变、缩放、位移、旋转)

    本文实例讲述了Android动画之渐变动画(Tween Animation).分享给大家供大家参考,具体如下: Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似. 下面就讲一下Tweene Animations. 主要类: Animation                  动画 AlphaAnimation          

  • Android基础知识之tween动画效果

    Android中一共提供了两种动画,其一便是tween动画,tween动画通过对view的内容进行一系列的图像变换(包括平移,缩放,旋转,改变透明度)来实现动画效果,动画效果的定义可以使用xml,也可以使用编码来实现. 下面我们逐一查看tween能够实现的动画效果. 先看看工程的整体结构吧: 我们要实现的效果图如图 点击按钮则执行相应的动画操作. 布局文件activity_main.xml <LinearLayout xmlns:android="http://schemas.androi

  • Android动画之3D翻转效果实现函数分析

    Android中的翻转动画效果的实现,首先看一下运行效果如上图所示. Android中并没有提供直接做3D翻转的动画,所以关于3D翻转的动画效果需要我们自己实现,那么我们首先来分析一下Animation 和 Transformation. Animation动画的主要接口,其中主要定义了动画的一些属性比如开始时间,持续时间,是否重复播放等等.而Transformation中则包含一个矩阵和alpha值,矩阵是用来做平移,旋转和缩放动画的,而alpha值是用来做alpha动画的,要实现3D旋转动画

  • Android实现左右摆动的球体动画效果

    首先,看一下效果 可能各位在别处看到过类似的东西,我在微信的文章末尾看到有个玩意,感觉有意思,就用代码实现一下.这篇文章主要把握写代码的思路展示一下. 看到上图,我想各位能想到最简单的实现方案就是用动画,切很多图出来,然后就可以轻松实现了.为了不让自己再舒适区里呆的太安逸,就弄点麻烦的:通过计算来实现.文章的末尾会将全部代码贴出,复制可以直接运行. 需要回忆的知识 重力势能 E = mgh 动能 E = ½mv² 在理想状态下,动能和重力式能可以相互转换,且能量守恒 如果不想太注意细节,以上的知

  • Android 中从屏幕左下角弹出Dialog动画效果的实现代码

    MainActivity代码: import android.app.Dialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import androi

  • Android仿Flipboard动画效果的实现代码

    1.上原图 前几天在 Hencoder 征稿看到的Filpboard 里的的动画效果: Filipboard.gif 先bb一句:在看本文的同时,如果觉得我写的模糊看不太懂的可以直接拉到文末,配合完整代码再一步一步看. 2.实现 整体思路: 用手机拍下来,逐帧观看了许久,恍然大悟,就是一张纸,折起一边之后,让其对折线绕中心点旋转. 关联自定义 View : Camera 来控制对折幅度, canves 控制旋转. 具体: 每当对折线旋转的时候,图标总是一边是折起来的,一边是平铺的,且中心对称,所

随机推荐