/**
* 作者:crazyandcoder
* 联系:
* QQ : 275137657
* email: lijiwork@sina.com
* 转载请注明出处! */

android 动画属性具体解释

android中的动画属性主要分为四种,各自是alpha、scale、translate、rotate。我们如今来具体了解一下各个类型的意思。然后依据项目的需求要定义自己的动画。

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

载入动画我们能够通过两种方式,一种是xml布局的方式,还有一种就是纯的java代码方式。两种方式各有优势。依据须要能够自己选择。首先我们来看下xml的方式定义动画属性,须要在res文件夹下新建一个文件夹anim,详细的路径为res/anim,里面新建一个img_anim.xml文件。

<?xml version="1.0" encoding="utf-8"?

>
<set> <alpha /> <rotate /> <scale /> <translate /> </set>

接下来我们分别了解当中的每一个属性的内容:

Alpha 透明度渐变的动画效果


  • fromAlpha   动画開始时的透明度, 0.0~1.0之间的float类型的数字,0.0代表全然透明,1.0代表不透明
  • toAlpha       动画结束时的透明度,同上
  • interpolator 动画的显示速度,能够有加速、匀速等状态。
  • duration      动画持续的时间

Scale 尺寸收缩渐变的动画效果

  • fromYScale 代表起点Y方向上相对于自身的缩放比例。0.5缩小一半,1.0无变化,2.0放大一倍
  • fromXScale 代表起点X方向上相对于自身的缩放比例。
  • toXScale、toYScale与上面相对。代表结束时的x、y方向上的缩放比例
  • pivotX,pivotY代表缩放的中心点x、y位置,
简单的来看一个实例:从图像中心点開始,初始图像xy方向缩放为原图的一半,然后放大到原来的2倍。缩放过程期间持续5秒钟。代码为:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <scale
android:duration="5000"
android:fromXScale="0.1"
android:fromYScale="0.1"
android:pivotX="0.5"
android:pivotY="0.5"
android:repeatCount="55"
android:toXScale="2.0"
android:toYScale="2.0" /> </set>



能够看到这仅仅狗有小到大的变化过程,因为是在手机里面模拟动画的,所以缩放过程不是非常平滑,建议真机測试,效果更佳。


Rotate 画面转移旋转动画效果

  • fromDegrees 从初始的角度開始旋转,单位为“ ° ”
  • toDegrees     结束时的度数
我们能够模拟一下载入进度的动画,仅仅须要一张图片,然后以它的中心点进行旋转。就可以。

<?

xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <rotate
android:duration="500"
android:fromDegrees="0"
android:pivotX="50%"
android:interpolator="@android:anim/linear_interpolator"
android:pivotY="50%"
android:repeatCount="-1"
android:toDegrees="360" /> </set>

主类文件代码:
package com.example.animationsdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView; public class MainActivity extends Activity { private ImageView mImgAnim;
private Animation mAnimation; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mImgAnim=(ImageView)findViewById(R.id.img_anim);
mAnimation=AnimationUtils.loadAnimation(this, R.anim.img_anim);
mImgAnim.startAnimation(mAnimation); } }

实现结果演示:



因为是模拟器的缘故,再加上转化为gif格式的所以中间有点卡顿的现象。建议直接真机測试。


Translate  画面转换位置的动画效果


  • fromXDelta 代表起始方向上x的位置
  • fromYDelta 代表起始方向上y的位置
  • toXDelta     代表结束时方向上x的位置
  • toYDelta     代表结束时方向上y的位置

我们来实现一个水平移动的动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <translate
android:duration="3000"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:repeatCount="-1"
android:toXDelta="200%"
android:toYDelta="0%" /> </set>

效果为:

公共的属性:

  • repeatCount 动画反复的次数,-1代表无线循环
  • fillAfter 假设设置为true的话动画结束后就停止,保持动画结束时的状态。
  • duration 动画持续的时间

android 动画xml属性具体解释的更多相关文章

  1. Android--应用开发3(Android layout XML属性)

    Android layout XML属性 转载:http://www.cnblogs.com/playing/archive/2011/04/07/2008620.html Layout对于迅速的搭建 ...

  2. Android中View自己定义XML属性具体解释以及R.attr与R.styleable的差别

    为View加入自己定义XML属性 Android中的各种Widget都提供了非常多XML属性,我们能够利用这些XML属性在layout文件里为Widget的属性赋值. 例如以下所看到的: <Te ...

  3. Android动画(二)-属性动画

    我们在上一篇博客中,讨论了视图动画与帧动画.那么这节课则要讨论更复杂,更强大的Property animation(属性动画). 视图动画使用简单,但是功能也简单.(只有那四种功能).并且也不改变Vi ...

  4. 【Android UI】Android Layout XML属性

    Layout对于迅速的搭建界面和提高界面在不同分辨率的屏幕上的适应性具有很大的作用.这里简要介绍Android的Layout和研究一下它的实现. Android有Layout:FrameLayout, ...

  5. Android Layout XML属性

    转载自并做少量添加:http://www.cnblogs.com/playing/archive/2011/04/07/2008620.html Layout对于迅速的搭建界面和提高界面在不同分辨率的 ...

  6. Android 动画及属性动画

    Android 平台提供了一套完整的动画框架,在Android3.0之前有两种动画Tween Animation(补间动画)和Frame Animation(帧动画), 对应SDK中的View Ani ...

  7. android AndroidManifest.xml 属性详细解析

    一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...

  8. Android自定义XML属性

    <?xml version="1.0" encoding="utf-8"?> <resources> <declare-style ...

  9. Android自定义XML属性以及遇到的命名空间的问题

    转载请注明出处:http://www.cnblogs.com/kross/p/3458068.html 最近在做一些UI,很蠢很蠢的重复写了很多代码,比如一个自定义的UI Tab,由一个ImageVi ...

随机推荐

  1. poj--2083--Fractal(dfs)

    Fractal Time Limit: 1000MS   Memory Limit: 30000KB   64bit IO Format: %I64d & %I64u Submit Statu ...

  2. Case study: word play

    For the exercises in this chapter we need a list of English words. There are lots of word lists avai ...

  3. leetcode 生成杨辉三角形, 118 119 Pascal's Triangle 1,2

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  4. PostgreSQL Replication之第九章 与pgpool一起工作(4)

    9.4 设置复制和负载均衡 要配置pgpool,我们可以简单地使用一个包含一种典型的配置信息的已经存在的样本文件,将它拷贝到我们的配置目录并修改之: $ cp /usr/local/etc/pgpoo ...

  5. exsi的虚拟机加载U盘

    1. 添加usb控制器: 2.添加设备

  6. Mac上vmware虚拟机Windows10安装JDK8及配置环境

    1.jdk8下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.双击下载的jdk进行安装 3.安装成功之 ...

  7. bzoj1457: 棋盘游戏 SG函数 Nim

    Code: #include<cstdio> #include<cstring> using namespace std; #define maxn 1003 #define ...

  8. springboot整合redis,并解决乱码问题。

    热烈推荐:超多IT资源,尽在798资源网 springboot 版本为 1.5.9 //如果是2.x 修改 pom.xml 也可切换成 1.5.9 <parent> <groupId ...

  9. linux安装memcacehed

        1.wget http://www.danga.com/memcached/dist/memcached-1.2.5.tar.gz     2.wget http://www.monkey.o ...

  10. VUE框架学习——脚手架的搭建

    #我的VUE框架学习 题记:初识VUE,觉得VUE十分的不错,故决定去深入的了解学习它,工欲善其事,必先利其器,下面是我搭建vue环境的过程! #一.项目搭建及初始化 1.安装:node.js:去官网 ...