一、概念

缩放动画,子类:ScaleAnimation,标签:
它可以使View具有放大或者缩小的动画效果。

二、实现

1. XML实现
标签常用属性如下:
android:fromXScale:起始的x方向上相对自身的缩放比例,浮点值,比如1.0表示起始时自身无变化,0.5表示缩小一倍,2.0表示放大一倍;
android:toXScale:结尾的x方向上相对自身的缩放比例,浮点值;
android:fromYScale:起始的y方向上相对自身的缩放比例,浮点值;
android:toYScale:结尾的y方向上相对自身的缩放比例,浮点值;
android:pivotX:缩放起点x轴坐标,可以是 数值、百分数、百分数p 三种样式,比如 50、50%、50%p,
50,表示在当前View的左上角x轴坐标加上50px做为起始点x轴坐标;
50%,表示在当前View的左上角x轴坐标加上自己宽度的50%做为起始点x轴坐标;
50%p,表示在当前View的左上角x轴坐标加上父控件宽度的50%做为起始点x轴坐标。
android:pivotY:缩放起点y轴坐标,取值及意义跟android:pivotX一样。

//res/anim/scale_animation.xml<?xml version="1.0" encoding="utf-8"?>//布局<?xml version="1.0" encoding="utf-8"?>    //代码,MainActivityprivate void scaleAnimationXML() {    Animation scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scale_animation);    mAnimate_tv.setAnimation(scaleAnimation);    mAnimate_tv.startAnimation(scaleAnimation); }private void stopAnimation() {    mAnimate_tv.clearAnimation();}@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    initView();    scaleAnimationXML();}@Overrideprotected void onDestroy() {    super.onDestroy();    stopAnimation();}

2. 代码实现
构造方法:
public ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
参数说明:
float fromX:起始的x方向上相对自身的缩放比例,浮点值,比如1.0表示起始时自身无变化,0.5表示缩小一倍,2.0表示放大一倍;
float toX:结尾的x方向上相对自身的缩放比例,浮点值;
float fromY:起始的y方向上相对自身的缩放比例,浮点值;
float toY:结尾的y方向上相对自身的缩放比例,浮点值;
int pivotXType:缩放起点x轴参考类型,
Animation.ABSOLUTE(绝对像素值);
Animation.RELATIVE_TO_SELF(参考自己);Animation.RELATIVE_TO_PARENT(参考父容器)。
float pivotXValue:缩放起点x轴坐标,
当pivotXType为ABSOLUTE时,当前View的左上角x轴坐标加上绝对像素值做为起始点x轴坐标;
当pivotXType为RELATIVE_TO_SELF或RELATIVE_TO_PARENT时,当前View的左上角x轴坐标加上 参考物宽度*pivotXValue 做为起始点x轴坐标。
int pivotYType:缩放起点y轴参考类型;
float pivotYValue:缩放起点y轴坐标。

//布局<?xml version="1.0" encoding="utf-8"?>    //代码,MainActivityprivate void scaleAnimationCode() {    mAnimation = new ScaleAnimation(0, 1.0f, 0, 1.0f, Animation.RELATIVE_TO_SELF, 1.5f, Animation.RELATIVE_TO_SELF, 1.5f);    mAnimation.setDuration(3000);    mAnimation.setRepeatCount(2);    mAnimation.setFillAfter(true);    mAnimate_tv.setAnimation(mAnimation);    mAnimate_tv.startAnimation(mAnimation);}private void stopAnimation() {    mAnimate_tv.clearAnimation();}@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    initView();    scaleAnimationCode();}@Overrideprotected void onDestroy() {    super.onDestroy();    stopAnimation();} 

更多相关文章

  1. 一行代码搞定Android屏幕适配
  2. SuperMap iMobile for Android定位实现
  3. 【Android应用实例之二】跟随手指的小球——自定义View应用
  4. Android读书笔记---View基础
  5. Android(安卓)SVG矢量图/矢量动画、Vector和VectorDrawable矢量
  6. 2014-11-8Android学习------Android(安卓)仿真翻页效果实现原理
  7. android资料--Android通过手势(多点)缩放和拖拽图片
  8. Android(安卓)OpenGL ES(二)绘制三角形
  9. 五幅图学会Android(安卓)Canvas的坐标系变换(rotate translate s

随机推荐

  1. android adb shell 命令大全
  2. android的init.rc文件的语法
  3. Android图形系统的底层实现
  4. Android动态加载——加载已安装APK中的类
  5. 如果Imageview与Linearlayout有叠加且可
  6. Android(安卓)adb shell 命令大全
  7. 环境变量ANDROID_SDK_HOME的作用
  8. Android(安卓)限制EditText只能输入数字
  9. android布局居中
  10. Android布局LinearLayout子控件无法填充