Android动画
- View Animation 视图动画(Tween Animation 补间动画),只能用来设置View的动画
- Drawable Animation 帧动画(Frame动画),一帧帧地显示资源文件中的Drawable
- Property Animation 属性动画,在android3.0以上的系统才有。这动画可以设置给任何的Object,包括那些还没有渲染到屏幕的view.
为什么要引入属性动画?
- 补间动画只能够作用在View上的
- 补间动画只能够实现移动、缩放、旋转和淡入淡出这四种动画操作,不能改变View的背景等
- 补间动画只是改变了View的显示效果而已,而不会真正去改变View的属性
View Animation 补间动画
视图动画也叫补间动画,指在一个视图容器中执行一些变换。包含有:位置、大小、旋转、透明 补间动画。
一般通过xml实现,不建议是用android代码实现,因为代码实现的可读性比较差。
补间动画的相关类
- AlphaAnimation <alpha>放在res/anim/目录下 透明渐变动画效果
- RotateAnimation <rotate>放在res/anim/目录下 旋转转移动画效果
- ScaleAnimation <scale>放在res/anim/目录下 缩放动画效果
- TranslateAnimation <translate>放在res/anim/目录下 移动动画效果
- AnimationSet <set> 放在res/anim/目录下 持有动画的容器
补间动画之ScaleAnimation使用
ScaleAnimation是尺寸变化动画的类,控制View的尺寸变化。
使用java代码实现
/** * * @param fromX 起始x轴位置,0为最小,1为原始,float形 * @param toX 同上 * @param fromY 同上 * @param toY 同上 * @param pivotXType 用来约束pivotXValue的取值。 * 取值有三种:Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT * Type: * Animation.ABSOLUTE:绝对,如果设置这种类型,后面pivotXValue取值就必须是像素点;比如:控件X方向上的中心点,pivotXValue的取值mIvScale.getWidth() / 2f * Animation.RELATIVE_TO_SELF:相对于控件自己,设置这种类型,后面pivotXValue取值就会去拿这个取值是乘上控件本身的宽度;比如:控件X方向上的中心点,pivotXValue的取值0.5f * Animation.RELATIVE_TO_PARENT:相对于它父容器(这个父容器是指包括这个这个做动画控件的外一层控件), 原理同上, * @param pivotXValue 配合pivotXType使用,原理在上面 * @param pivotYType 同from/to * @param pivotYValue 原理同上 */ scaleAnimation = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f); //动画持续时间 scaleAnimation.setDuration(1000); //动画持续次数,不设置默认0(也就是播放一次,N+1次,< 0 表示无限次) scaleAnimation.setRepeatCount(1); //动画播放完后倒置播放 scaleAnimation.setRepeatMode(Animation.REVERSE); //播放N+1此后最后是否保持最后的状态 scaleAnimation.setFillAfter(true);
# 启动动画 textView.startAnimation(scaleAnimation); # 清除动画 textView.clearAnimation();
使用xml实现
/res/anim/anim_scale.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <scale android:duration="100" android:fillAfter="true" android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/linear_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.15" android:toYScale="1.15" /> </set>
# 加载anim Animation animation = AnimationUtils.loadAnimation(this, R.anim.anim_scale); # 启动anim if (null != animation) { textView.startAnimation(animation); }
参考文章
历史上的今天
随机推荐
PHP中检查url是否可以正常访问
一个链接是否可以正常访问:方法一:array get_headers( string $url[, int $format = 0] )url: 目标 URL。format: 如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。返回:...
Square开源框架Coordinators的简单使用
Coordinators简介Coordinators是由知名公司Square开发并开源的框架,Simple lifecycle for your MVWhatever on Android. No kidding.哈哈,比较小众,但很不错的。目前国内没啥资料介绍这个和使用这个。Github地...
林薇因:你是人间的四月天,一句爱的赞颂
我说你是人间的四月天;笑响点亮了四面风;轻灵在春的光艳中交舞着变。 你是四月早天里的云烟,黄昏吹着风的软,星子在无意中闪,细雨点洒在花前。 那轻,那娉婷你是,鲜妍百花的冠冕你戴着,你是天真,庄严,你是夜夜的月圆。 雪化后那篇鹅黄,你象;新鲜初放...
AS动态配置module时异常
前言动态配置module时出现如下错误提示。Could not compile build file 'D:\Android\WaterFun\UserCenter\build.gradle'.> startup failed: build file 'D:\Android\Wat...
[摘]《财富》杂志评选:75本商业必读书
《财富》杂志曾调动一切资源,选出了有史以来最应该阅读的75本商业必读书。这些书将激发你的思考,甚至是行动。实际上,有了这份书单,你等于就有了睿智的顾问供你驱使,它耐心地待在那里,等着你的召唤。商业兴衰No.1 《1929年大崩盘》约翰·肯尼斯·加尔布雷思(著)这是本简明扼要但又富有见地的历史...
[摘]Android ANR日志分析指南
当你的项目越做越复杂,或者你的用户达到某个数量级的时候,你的代码不小心出现细小的问题,你会收到各种各样的bug,其中ANR的问题你一定不会陌生。本文将详细讲解ANR的类型、出现的原因、ANR案例详细分析、经典的案例。定义ANR(Application Not Responding) 应用程序无...
上面的xml配置复制错了吧
@九月九