1.定义xml动画

1)在anim文件夹下定义xml文件

解释:这个文件夹下面的文件会被默认为动画文件,如果这个文件不存在,需要自己创建

display_result_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
 <!--缩放动画-->
 <scale
android:duration="300"
android:fromXScale="2.0"
android:fromYScale="2.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" />
 <!--位置移动动画-->
 <translate
android:duration="300"
android:fromYDelta="154.5%"
android:toYDelta="0"
android:fromXDelta="-49.5%"
android:toXDelta="0" >
</translate>
 <!--透明度动画-->
 <alpha
android:fromAlpha="1"
android:toAlpha="0.5"
android:duration="300"
/> </set>

display_input_anim.xml

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

2.代码中引用

import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.TranslateAnimation; private Animation myAnimationInput;
private Animation myAnimationResult; myAnimationInput = AnimationUtils.loadAnimation(context, R.anim.display_input_anim);
myAnimationResult = AnimationUtils.loadAnimation(context,R.anim.display_result_anim);
myAnimationInput.setFillAfter(true);
myAnimationResult.setFillAfter(true); EditText current = (EditText) getCurrentView();
current.startAnimation(myAnimationInput);
next.startAnimation(myAnimationResult);

知识点总结:

1.android:fromYDelta="44.1%" 它的属性值有三种形式

(1)如果直接写33,表示的是距离这个动画拥有者(edittext)的值为33px,根据+ -决定是在拥有者上还是下 ;如果是写成33%,这个就是表示的,相对于动画拥有者自身尺寸的33%的距离,这个尺寸是动画拥有者最开始设定的尺寸,也就是不加动画的时候的尺寸;如果写成是33%p,那么就是相对于父容器的尺寸了

(2)如果是强制写成33dp的话,会报错,说明不支持这么方式

(3)如果是引用@dimen的话,你会发现引用值的结果是0,也就是没有动画效果,虽然它并不会报错

2.各个动画的效果

三种如上,最后一种是

旋转动画

<rotate
android:fromDegrees="0"
android:toDegrees="-360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
/>

属性就是角度值,正负表示顺逆时针

最新文章

  1. 详解java方法的重载
  2. 孙鑫MFC学习笔记5:文本显示
  3. highcharts异步获取数据
  4. fork函数
  5. UVa 808 (建坐标系、找规律) Bee Breeding
  6. Elasticsearch aggregations API
  7. Oracle学习笔记_09_字符串相关函数
  8. Flask 学习 十三 应用编程接口
  9. Spark内核
  10. JS异步加载的三种方案
  11. redhat换用centos源
  12. visual studio 2017 (vs2017安装)
  13. Vue项目初始化
  14. 嵌套for
  15. ElasticSearch-SQL 安装和使用
  16. 微服务系列实践 .NET CORE
  17. C#获取用户基本信息一(关注了公众号的用户)
  18. solr&amp;lucene3.6.0源码解析(一)
  19. FileUpload.PostedFile 为null异常 NullReferenceException
  20. SMP

热门文章

  1. Win7下JDK环境变量设置批处理(转)
  2. Mysql 锁表 for update (引擎/事务)
  3. 洛谷 P1407 工资
  4. Android导入工程提示Invalid project description
  5. POJ 3256 DFS水题
  6. c#(asp.net) 如何计算两个日期之间相隔天数
  7. vue.js原生组件化开发(二)——父子组件
  8. ajax处理错误(六)
  9. Chromium Graphics : GPU Accelerated Compositing in Chrome
  10. Unix操作系统的入门与基础