通过编码和xml文件两种方式实现tween动画

tween有四种动画效果:alpha(透明)、rotate(旋转), translate(移动),scale(缩放);

可以通过硬编码和xml文件这两种方式来实现。

xml实现:

第一步:在项目的res文件下面新建一个文件夹名字是anim(必须)

第二步:在anim文件夹下面新建新的xml文件,在xml文件中具体设置动画效果

第三步:在Activity中使用 AnimationUtils.loadAnimation(MainActivity.this,R.anim.xx);来获取。

1、alpha

alpha的xml配置文件:

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="5000"
    android:fillAfter="true"
    android:fromAlpha="1.0"
    android:toAlpha="0.0" >

</alph

在上面的代码中

duration:执行这个动画要用的时间

fillAfter:动画执行结束后是否停留在动画的最后一帧,默认为false,当动画结束后图片会回到开始的位置

fromAlpha:开始时的透明度

toAlpha:结束时的透明度

alpha的View:

    <ImageView
        android:id="@+id/iv_alpha"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

    <Button
        android:id="@+id/bt_alpha"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/iv_alpha"
        android:text="透明" />

成员变量:

	private ImageView ivalpha, ivrotate, ivtranslate, ivscale;
	private Animation alphaAnimation, rotateAnimation, translateAnimation,
			scaleAnimation;
	private Button btalpha, btrotate, bttranslate, btscale;

btalpha的点击事件:

			alphaAnimation = AnimationUtils.loadAnimation(MainActivity.this,
					R.anim.alpha);
			ivalpha.startAnimation(alphaAnimation);

这样一个完整的alpha动画就完成了。

2、scale

scale的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1"
    android:fromYScale="1"
    android:toXScale="0"
    android:toYScale="0"
    android:duration="5000">

</scale>

fromXScale、fromYScale:动画开始时X轴和Y轴的缩放比例,比如:fromXScale为0.5,fromYScale为2,那么图片的宽就变为原来的一半,高为原来的2倍然后再开始缩放。

toXScale、toYScale: 结束时的图片X轴和Y轴的缩放比例.

编码实现:

1、创建Animation对象

2、设置动画的参数

3、ImageView设置setAnimation

translate

    <ImageView
        android:id="@+id/iv_translate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/bt_alpha"
        android:src="@drawable/ic_launcher" />

    <Button
        android:id="@+id/bt_translate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/iv_translate"
        android:text="移动" />

bttranslate的点击事件:

			 translateAnimation=new TranslateAnimation(0, 100, 0, 100);
			 translateAnimation.setDuration(2000);
			 ivtranslate.setAnimation(translateAnimation);
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

fromXDelta:开始的X轴坐标位置

toXDelta:结束时x轴坐标的位置

fromYDelta:开始的y轴坐标位置

toYDelta:结束时y轴坐标的位置

这是一个图片移动的动画效果。

rotate

			rotateAnimation=new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
			 rotateAnimation.setDuration(2000);
			 rotateAnimation.setFillAfter(true);
			 ivrotate.setAnimation(rotateAnimation);
new RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue);

fromDegrees:开始旋转时图片的角度

toDegrees:旋转到什么角度

pivotXType:以哪里为参考旋转,在这里是图片本身

pivotXValue:以本身哪个点开始旋转,这里是图片宽度的一半,也就是图片中心点。

通过编码和xml文件两种方式实现tween动画,布布扣,bubuko.com

时间: 2024-12-23 01:51:23

通过编码和xml文件两种方式实现tween动画的相关文章

java解析xml文件四种方式介绍、性能比较和基本使用方法

一.介绍: 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以在任何时候在树中上下导航,而不

简介C#读取XML的两种方式

简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的好处在于它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询 XML作用 对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企 业可以制定一套自己的数据格式.用于Internet的数据

Java解析xml文件四种方式

1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以在任何时候在树中上下导航,而不是

VS2017生成DLL文件——两种方式

下面我们将用两种不同的姿势来用VS2017生成dll文件(动态库文件),这里以C语言为例,用最简单的例子,来让读者了解如何生成dll文件 姿势一: 第一步:新建一个项目 第二步:选择Windows桌面向导(这里先不要去管上面的“动态链接库(DLL)”)  第三步:选择动态链接库,并空项目打勾√  第四步:添加一个.c源文件 第五步:(因为这里以C语言为例子,将后缀改为.c) 第六步:在c文件中输入一个简单的函数这里的_declspec(dllexport)并不是必须的,后面一种方法将不使用_de

解析XML的两种方式 javax | dom4j

package xml; import java.io.IOException; import java.io.StringReader; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.DocumentException; public class Test { private static String xml = "<xml><ToUserNam

iOS Base64转码(使用ios7系统自带编码库 和 GMTBase64 两种方式)

demo下载地址:http://pan.baidu.com/s/1i3LvaDZ 在iOS7 中系统提供了base64 的转码方式 示例如下: NSData* originData = [originStr dataUsingEncoding:NSASCIIStringEncoding]; NSString* encodeResult = [originData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineF

SpringBoot集成Mybatis实现多表查询的两种方式(基于xml)

 下面将在用户和账户进行一对一查询的基础上进行介绍SpringBoot集成Mybatis实现多表查询的基于xml的两种方式.   首先我们先创建两个数据库表,分别是user用户表和account账户表     user表:  account表:  然后创建实体类        **第一种通过创建子类的方式查询                             需求:查询所有的用户基础信息以及其所属的账户中的金额     1.创建想要得到多表查询数据的实体类(子类)            

springmvc和servlet下的文件上传和下载(存文件目录和存数据库Blob两种方式)

项目中涉及了文件的上传和下载,以前在struts2下做过,今天又用springmvc做了一遍,发现springmvc封装的特别好,基本不用几行代码就完成了,下面把代码贴出来: FileUpAndDown.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <html> <head> <title>using commons Uplo

Android解析XML文档的两种方式的简单对比

Android之所以会用到解析XML文档,不仅与JAVA对XML的解析比较简单,而且还因为XML是Android在网络间传递信息的主要存储方式.下面我简单谈谈Android对XML文档解析的两种方式:dom和sax.dom解析方式是,解析方法将一个XML文件看成是一棵树.由数据结构的知识我们知道对树的处理比较简单,就是对树的节点进行增,删,改,查,这也是dom的一个最大优点.但是,dom方式在解析的时候是一次性就将整个XML文档读进内存,这坏处不用我说了吧,我宝贵的内存是禁不起这么折腾的. sa