Android缩放动画
2015-07-27 14:20
387 查看
Android缩放动画
核心方法
public void startAnimation(Animation animation)
执行动画,参数可以是各种动画的对象,Animation的多态,也可以是组合动画,后面会有。
4个参数构造方法
/** * Constructor to use when building a ScaleAnimation from code * * @param fromX Horizontal scaling factor to apply at the start of the animation * @param toX Horizontal scaling factor to apply at the end of the animation * @param fromY Vertical scaling factor to apply at the start of the animation * @param toY Vertical scaling factor to apply at the end of the animation */ public ScaleAnimation(float fromX, float toX, float fromY, float toY) { mResources = null; mFromX = fromX; mToX = toX; mFromY = fromY; mToY = toY; mPivotX = 0; mPivotY = 0; }
用法
public void scale(View view) { // 创建缩放的动画对象 ScaleAnimation sa = new ScaleAnimation(0f,1.0f,0f,1.0f); // 设置动画播放的时间 sa.setDuration(1000); // 开始播放动画 iv.startAnimation(sa); }
效果
以图片左上角为原点,从没有,放大到图片原大小
6个参数构造方法
/** * Constructor to use when building a ScaleAnimation from code * * @param fromX Horizontal scaling factor to apply at the start of the animation * @param toX Horizontal scaling factor to apply at the end of the animation * @param fromY Vertical scaling factor to apply at the start of the animation * @param toY Vertical scaling factor to apply at the end of the animation * @param pivotX The X coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the left edge. (This point remains fixed while the object changes size.) * @param pivotY The Y coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the top edge. (This point remains fixed while the object changes size.) */ public ScaleAnimation(float fromX, float toX, float fromY, float toY, float pivotX, float pivotY) { mResources = null; mFromX = fromX; mToX = toX; mFromY = fromY; mToY = toY; mPivotXType = ABSOLUTE; mPivotYType = ABSOLUTE; mPivotXValue = pivotX; mPivotYValue = pivotY; initializePivotPoint(); }
前4个参数和上面的用法一样,后两个参数是设置图片缩放的原点,四个参数的构造默认将这两个参数都设置了0,所以是在图片左上角开始缩放
用法
ScaleAnimation sa = new ScaleAnimation(0f, 1.0f, 0f, 1.0f, iv.getWidth() / 2, iv.getHeight() / 2); // 设置动画播放的时间 sa.setDuration(1000); // 开始播放动画 iv.startAnimation(sa);
效果
以图片的中心为原点,从没有放大到图片原大小
8个参数构造方法
/** * Constructor to use when building a ScaleAnimation from code * * @param fromX Horizontal scaling factor to apply at the start of the animation * @param toX Horizontal scaling factor to apply at the end of the animation * @param fromY Vertical scaling factor to apply at the start of the animation * @param toY Vertical scaling factor to apply at the end of the animation * @param pivotXType Specifies how pivotXValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT. * @param pivotXValue The X coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the left edge. (This point remains fixed while the object changes size.) This value can either be an absolute number if pivotXType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. * @param pivotYType Specifies how pivotYValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT. * @param pivotYValue The Y coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the top edge. (This point remains fixed while the object changes size.) This value can either be an absolute number if pivotYType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. */ public ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) { mResources = null; mFromX = fromX; mToX = toX; mFromY = fromY; mToY = toY; mPivotXValue = pivotXValue; mPivotXType = pivotXType; mPivotYValue = pivotYValue; mPivotYType = pivotYType; initializePivotPoint(); }
用法
// 创建缩放的动画对象 ScaleAnimation sa = new ScaleAnimation(0f, 1.0f, 0f, 1.0f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f); // 设置动画播放的时间 sa.setDuration(1000); // 开始播放动画 iv.startAnimation(sa);
和上面6个参数的相比只是多了第5和第7个参数,分别设置他们的类型,注释里面已经说明了,可以设置Animation.ABSOLUTE、Animation.RELATIVE_TO_SELF、Animation.RELATIVE_TO_PARENT类型
效果
效果和上面一样,以图片的中心为原点,从没有放大到图片原大小。
设置动画重复播放的次数的方法
/** * Sets how many times the animation should be repeated. If the repeat * count is 0, the animation is never repeated. If the repeat count is * greater than 0 or {@link #INFINITE}, the repeat mode will be taken * into account. The repeat count is 0 by default. * * @param repeatCount the number of times the animation should be repeated * @attr ref android.R.styleable#Animation_repeatCount */ public void setRepeatCount(int repeatCount) { if (repeatCount < 0) { repeatCount = INFINITE; } mRepeatCount = repeatCount; }
使用
sa.setRepeatCount(2);
设置动画重复播放的模式的方法
/** * Defines what this animation should do when it reaches the end. This * setting is applied only when the repeat count is either greater than * 0 or {@link #INFINITE}. Defaults to {@link #RESTART}. * * @param repeatMode {@link #RESTART} or {@link #REVERSE} * @attr ref android.R.styleable#Animation_repeatMode */ public void setRepeatMode(int repeatMode) { mRepeatMode = repeatMode; }
使用
sa.setRepeatMode(ScaleAnimation.REVERSE);
相关文章推荐
- android 位移动画移动后原地绑定的点击事件还在
- Android源码——安卓聊天
- Android Logo 尺寸比例制作
- Android RSA加密解密功能的实现
- Android ndk 单步调试
- Android碎片第三期
- Android Studio手动导入第三方类库
- 【第五篇】androidEventbus源代码阅读和分析之发送粘性事件和接收粘性事件代码分析
- android底部弹出菜单
- android listView点击item,高亮显示
- Android完全退出程序
- android service(二)
- 通过html页面打开Android本地的app
- Android ServiceManager启动
- android4.4修改设置界面里,蓝牙默认名称
- 最新百度地图android sdk自定义覆盖物
- 基于Monkey的Android自动化测试
- Android 防止快速 点击 多次
- 【Android4.4蓝牙代码分析】- 蓝牙Enable过程
- Android 多分辨率自适应总结