详解Android实现动画效果

网址简介:未填写

更新时间:11个月前

访问次数:110

详细介绍

众所周知,漂亮的用户界面是衡量应用程序的重要依据,因为人是视觉动物,正如人们知道的,男人总是爱漂亮的脸庞,英俊潇洒的人总能赢得人心,下面是爱站技术频道小编介绍的详解实现效果,希望对你有帮助!

目前Android平台提供了两类动画一类是Tween动画,第二类就是 Frame动画,具体内容介绍请看下文:

一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。

第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。

实现动画有两种方式:一种使用XML文件(文件放在res/anim),一种直接代码搞定

 1、透明度控制动画效果alpha

  <!--  透明度控制动画效果alpha   浮点型值:   fromAlpha 动画起始时透明度   toAlpha 动画结束时透明度   说明:0.0 完全透明   1.0 完全不透明   以上值取0.0-1.0之间的 float数据类型的数字  duration 为动画持续时间  长整型:  说明:时间以毫秒为单位  -->  <alpha   android:duration="3000"   android:fromAlpha="0.0"   android:toAlpha="1.0" />  

代码方式:

 

 

Animation animationAlpha = new AlphaAnimation(0.0f, 1.0f);
animationAlpha.setDuration(3000);
ivAnim.startAnimation(animationAlpha);

 

 

2、rotate旋转动画

  <!--  rotate旋转动画效果    属性:interpolator 指定一个动画的插入器  有三种动画插入器:   accelerate_decelerate_interpolator 加速-减速 动画插入器   accelerate_interpolator 加速-动画插入器   decelerate_interpolator 减速-动画插入器   其他的属于特定的动画效果    浮点整型值:   fromDegrees 为动画起始时物件的角度   toDegrees 为动画起始时物件旋转的角度 可以大于360度  说明:当角度为负数——表示逆时针旋转    当角度为正数——表示顺时针旋转    (负数from——to正数:顺时针旋转    负数from——to负数:逆时针旋转    正数from——to正数:顺时针旋转)      pivotX 为动画相对于物件的X坐标的开始位置  pivotY 为动画相对于物件的Y坐标的开始位置  说明:以上两个属性值 从0%——100%中取值   50%为物件的X或Y方向坐标上的中点位置  长整型类型:  duration 为动画持续时间  说明:时间以毫秒为单位   -->  <rotate   android:duration="3000"   android:fromDegrees="0"   android:interpolator="@android:anim/accelerate_decelerate_interpolator"   android:pivotX="50%"   android:pivotY="50%"   android:toDegrees="+350" />

 

 

Animation animationRotate = new RotateAnimation(0.0f, +350.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animationRotate.setDuration(3000);
ivAnim.startAnimation(animationRotate);

 

3、尺寸伸缩动画效果 scale

  <!--  尺寸伸缩动画效果 scale  属性:interpolator 指定一个动画的插入器    有三种动画插入器:    accelerate_decelerate_interpolator 加速-减速 动画插入器    accelerate_interpolator 加速-动画插入器    decelerate_interpolator 减速-动画插入器    其他的属于特定的动画效果  浮点型值:   fromXScale 动画起始时 X坐标上的伸缩尺寸   toXScale 动画结束时 X坐标上的伸缩尺寸   fromYScale 动画起始 Y时坐标上的伸缩尺寸   toYScale 动画结束时 Y坐标上的尺寸   说明:以上四种属性值   0.0表示收缩到没有   1.0表示正常无伸缩    值小于1.0表示收缩    值大于1.0表示放大   pivotX 动画相对于物件的X坐标的开始位置   pivotY 动画相对于武将的Y坐标的开始位置   说明:以上两个属性值 从0%-100%中取值   长整型:   duration 动画持续时间   说明:时间以毫秒为单位   布尔型值:   fillAfter 当设置为true,该动画转化在动画结束后被应用  -->    <scale   android:duration="700"   android:fillAfter="false"   android:fromXScale="0.0"   android:fromYScale="0.0"   android:interpolator="@android:anim/accelerate_decelerate_interpolator"   android:pivotX="50%"   android:pivotY="50%"   android:toXScale="1.4"   android:toYScale="1.4" />  
     

代码方式:

  Animation animationScale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);  animationScale.setDuration(3000);  ivAnim.startAnimation(animationScale);    

4、translate 位置转移动画效果

  <!--  translate 位置转移动画效果   整型值:   fromXDelta 动画起始时 X坐标上的位置    toXDelta 动画结束时 X坐标上的位置   fromYDelta 动画起始时 Y坐标上的位置   toYDlta 动画结束时 Y坐标上的位置   注意:没有指定fromXTra toXType fromYType toYType 时候,默认是以自己为相对参照物   长整型:duration 为动画持续时间      时间以毫秒为单位  -->    <translate   android:duration="2000"   android:fromXDelta="30"   android:fromYDelta="30"   android:toXDelta="-80"   android:toYDelta="300" />    

 

 

Animation animationTranslate = new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
animationTranslate.setDuration(3000);
ivAnim.startAnimation(animationTranslate);

 

 

xml文件方式使用的话就两行代码

 

 

Animation anim = AnimationUtils.loadAnimation(activity, R.anim.anim_xxx);
ivAnim.startAnimation(anim);

 

 

5、frame帧动画(文件放在res/drawable)

  <!--   根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画    根标签下,通过item标签对动画中的每一个图片进行声明    android:duration 表示展示所用的该图片的时间长度     -->  <animation-list xmlns:android="http://schemas.android.com/apk/res/android"   android:oneshot="true" >     <item   android:drawable="@drawable/icon_frame1"   android:duration="200">   </item>   <item   android:drawable="@drawable/icon_frame2"   android:duration="200">   </item>   <item   android:drawable="@drawable/icon_frame3"   android:duration="200">   </item>   <item   android:drawable="@drawable/icon_frame4"   android:duration="200">   </item>   <item   android:drawable="@drawable/icon_frame5"   android:duration="200">   </item>   <item   android:drawable="@drawable/icon_frame6"   android:duration="50">   </item>  </animation-list>    
xml帧动画使用代码:
  ivFrame = (ImageView) findViewById(R.id.iv_frame_image);  ivFrame.setImageResource(R.drawable.anim_frame);   animation = (AnimationDrawable) ivFrame.getDrawable();  animation.setOneShot(false);//循环  animation.start();  

  以上就是详解Android实现动画效果的相关介绍,本文的介绍不仅操作简单,而且功能非常的强大,重要的是它能让大家迅速掌握,还想了解更多资讯就多关注爱站技术频道吧!

请发表您的评论