现在是下午,我还在上班,工作都完成了,正在测试,突然感到很迷惘,工作一年了,仍然还是老样子,想到这些不由得倒吸一口冷汗。所以抓紧时间来看看我的博客,更新一下内容,有时候不逼自己一把,永远都不知道自己的极限是什么。 今天就来说说很基础很基础的知识:动画。动画主要分为四种。 1.缩放动画(ScaleAnimation); 2.平移动画(TranslateAnimation); 3.旋转动画(RotateAnimation); 4.透明度(AlphaAnimation); 其实还有一个,叫动画集合,现在这里先放一放。 接下来,我先讲讲在java代码里面怎么去实现动画的效果。 首先看到缩放动画:
(ImageView iv) { ScaleAnimation animation; animation = ScaleAnimation(,,,,Animation.RELATIVE_TO_SELF, f, Animation.RELATIVE_TO_SELF, f); animation.setDuration(); animation.setFillAfter(); iv.startAnimation(animation); }
看到代码里面,首先这是一个私有的方法,传了一个ImageView对象,所以很明显,这个是实现图片的缩放效果的。重点来看ScaleAnimation的三个构造方法:
1.ScaleAnimation(fromX, toX, fromY, toY); 2.ScaleAnimation(fromX, toX, fromY, toY, pivotX, pivotY); 3.ScaleAnimation(fromX, toX, fromY, toY, pivotXType, pivotXValue, pivotYType, pivotYValue)
第一个其实很明显,分别是从水平缩放和垂直缩放的角度,默认的原点是当前ImageView控件的左上角。 第二个比一个多了两个参数,这两个参数就是可以让我们定义原点的。 第三个好像更丰富了,从单词上也不难理解。前四个都类似,重点看看后面的四个,首先是 pivotXType,这个是指原点相对x的类型,常用的是Animation.RELATIVE_TO_SELF,pivotXValue是指原点的值,一般的,0.5就是指原点了,后面的两个参数依次类推。 所以,一个缩放动画就搞定了。 接下来,再来看看平移动画:
(ImageView iv) { TranslateAnimation animation; animation = TranslateAnimation(, , Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF); animation.setDuration(); animation.setFillAfter(); iv.startAnimation(animation); }
同样的,我们来看看它的构造方法。
1.TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta); 2.TranslateAnimation(fromXType, fromXValue, toXType, toXValue, fromYType, fromYValue, toYType, toYValue);
我们来一一分析一下这个参数的具体意义:
float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;
float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;
float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;
float toYDelta)这个参数表示动画开始的点离当前View Y坐标上的差值;
如果view在A(x,y)点 那么动画就是从B点(x+fromXDelta, y+fromYDelta)点移动到C 点(x+toXDelta,y+toYDelta)点.
第二个构造方法
fromXType:第一个参数是x轴方向的值的参照(Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,or Animation.RELATIVE_TO_PARENT);
fromXValue:第二个参数是第一个参数类型的起始值;
toXType,toXValue:第三个参数与第四个参数是x轴方向的终点参照与对应值;
后面四个参数就不用解释了。如果全部选择Animation.ABSOLUTE,其实就是第二个构造函数。
以x轴为例介绍参照与对应值的关系: 如果选择参照为Animation.ABSOLUTE,那么对应的值应该是具体的坐标值,比如100到300,指绝对的屏幕像素单位 如果选择参照为Animation.RELATIVE_TO_SELF或者 Animation.RELATIVE_TO_PARENT指的是相对于自身或父控件,对应值应该理解为相对于自身或者父控件的几倍或百分之多少。多试参数就明白了。
我们再来看看旋转动画:
(ImageView iv) { RotateAnimation animation; animation = RotateAnimation(, , Animation.RELATIVE_TO_SELF, f, Animation.RELATIVE_TO_SELF, f); animation.setDuration(); animation.setFillAfter(); iv.startAnimation(animation); }
首先来分析一下它的构造方法:
1.RotateAnimation(fromDegrees, toDegrees); 2.RotateAnimation(fromDegrees, toDegrees, pivotX, pivotY); 3.RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue)。
这里面:
fromDegrees是指从什么角度开始,toDegrees是指在什么角度结束。第一个参数的原点是控件的左上角。
剩下的上面的缩放动画已经涉及过,就不在赘诉了。
最后看看透明度动画:
(ImageView iv) { AlphaAnimation animation; animation = AlphaAnimation(, ); animation.setDuration(); animation.setFillAfter(); iv.startAnimation(animation); }
这一个比较简单,只有一个重要的构造方法。
;
这里也很明显,就是从什么状态到什么状态,最小的是-1最大的是1
好了,截止目前,这里java代码实现控件动画的效果就到此结束了,下一次我们聊聊在xml里面怎么设置动画,并且在java代码里怎么引用这些动画。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索参数
, 动画
, c++ 函数平移缩放问题
, animate
, animation
, 平移动画
, android pivotx
, imageview控件
, imageview动画android
, 一个
, 缩放动画
, 透明度动画
, TranslateAnimation
ScaleAnimation
,以便于您获取更多的相关知识。