`
yaochaosheng
  • 浏览: 52696 次
  • 性别: Icon_minigender_1
  • 来自: guangzhou
文章分类
社区版块
存档分类
最新评论

android中四个典型动画设置

阅读更多

现总结android下四个基本动画的方法

 

 

RotateAnimation

ScaleAnimation

AlphaAnimation

TranslateAnimation

 

 

具体用法如下:

1.Animation rotateAnimation = new RotateAnimation(+90f, +270f,
                                                                                   Animation.RELATIVE_TO_SELF, 0.9f,
                                                                                   Animation.RELATIVE_TO_SELF, 0.9f);
    rotateAnimation.setDuration(3000);
    girlImage.startAnimation(rotateAnimation);

    
    /*参数含义:绕什么点旋转多少角度
     * 第一个参数表示动画初始时将原图片旋转90度的状态作为初始状态
     * 第二个参数表示动画结束时该图片应是原图片旋转+270的状态,-270表示逆时针旋转
     * 第三四个参数表示动画旋转所绕的中心点的x位置,这是是相对图片本身0.9倍的x位置(0表图片左上角,1表示图片右下角)
     * 第五六个参数表示动画旋转所绕的中心点的y位置,这里是相对图片本身0.9被的y位置。(如要要以图片为中心旋转则将两个参数改为0.5和0.5)
     * */

2.Animation scaleAnimation = new ScaleAnimation(0f, 2f, 0f, 2f,                   //从0*0到2*2的scale变化规模
                                                                                Animation.RELATIVE_TO_SELF, 1f,
                                                                                Animation.RELATIVE_TO_SELF, 1f);
    scaleAnimation.setDuration(3000);
    girlImage.startAnimation(scaleAnimation);


    /*参数含义:在什么位置将图片的大小从多少变到多少
     * 第一三个参数表示将图片在xy轴上分别以初始为原图片大小0倍的大小初始显示
     * 第二四个参数表示将图片变化结果的大小应该是原图片的2*2倍(横行两倍且纵向两倍)
     * 第五六个参数表示动画初始的x位置,这里是设置为相对图片本身一倍大小的横向x位置
     * 第七八个参数表示动画初始的y位置,这里是设置为相对图片本身一倍大小的纵向y距离。
     * */

3.Animation alphaAnimation = new AlphaAnimation(0.1f, 1.0f);
    alphaAnimation.setDuration(3000);
    girlImage.startAnimation(alphaAnimation);

    
    /*参数含义:将alpha值从多少变化到多少
     * 第一个表示初始的alpha值,为0表示完全透明
     * 第二个参数表示动画结束时的alpha值,为表示完全不透明
     * 这个变化要持续的时间在setDuration中设定!
     * */

4.Animation translateAnimation = new TranslateAnimation(0, 100, 0, 100);
    translateAnimation.setDuration(3000);
    girlImage.startAnimation(translateAnimation);

    
    /*参数含义:将图片从什么位置移动到什么位置
     * 第一三个参数表示动画开始时,原图片左上角在屏幕中所处的坐标位置,本例中是将图片左上角直接放在屏幕左上角作为动画开始
     * 第二四个参数表示动画结束时,原图片左上角在屏幕中所处的位置,本例中是(100,100)的屏幕坐标。
     * */

 

 

 

 

使用xml配置:

注意上面这些动画设置可以在程序代码中设定好,但是android官方推荐使用配置文件的方式来设置动画属性,这样比较方便修改,维护性好。

如rotate.xml设置:

  1. <set xmlns:android="http://schemas.android.com/apk/res/android">   
  2.     <rotate   
  3.         android:interpolator="@android:anim/accelerate_decelerate_interpolator"  
  4.         android:fromDegrees="90" android:toDegrees="+270" android:pivotX="90%"  
  5.         android:pivotY="90%" android:duration="3000">   
  6.     </rotate>   
  7. </set>  

然后再在程序中获取这个xml动画文件,转换为动画对象并播放之;

  1.      mRotateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.rotate);  
  2.      this.startAnimation(mRotateAnimation);  

 

两种方式大同小异,都可以实现基本的动画效果。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics