现总结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设置:
- <set xmlns:android="http://schemas.android.com/apk/res/android">
- <rotate
- android:interpolator="@android:anim/accelerate_decelerate_interpolator"
- android:fromDegrees="90" android:toDegrees="+270" android:pivotX="90%"
- android:pivotY="90%" android:duration="3000">
- </rotate>
- </set>
然后再在程序中获取这个xml动画文件,转换为动画对象并播放之;
- mRotateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.rotate);
- this.startAnimation(mRotateAnimation);
两种方式大同小异,都可以实现基本的动画效果。