现总结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. <setxmlns: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);

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

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. Python技巧匿名函数、回调函数和高阶函数
  3. python list.sort()根据多个关键字排序的方法实现
  4. 监听android home键的实现方式
  5. Android(安卓)SearchView介绍及搜索提示实现
  6. Android核心基础(十一)
  7. Android中http请求(C# MVC接收)
  8. Android中http请求(C# MVC接收)
  9. Android(安卓)Property Animation属性动画初识:透明渐变(1)

随机推荐

  1. Android 音频系统:从 AudioTrack 到 Audio
  2. Android开发:使用Fragment改造TabActivity
  3. Android(安卓)新建文件夹、生成文件并向
  4. android POST请求
  5. 解读新一代岗位要求(一) ----------------A
  6. React-Native之android集成支付宝
  7. Android获取屏幕实际高度跟显示高度,判断A
  8. android_camera_002
  9. 选择Android还是IOS开发?
  10. Android中去除标题,全屏,获得屏幕方向及键