100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > android 淡入位移动画 Android动画 translate(位移) scale(缩放) alpha(淡入淡出) rotate(旋转)...

android 淡入位移动画 Android动画 translate(位移) scale(缩放) alpha(淡入淡出) rotate(旋转)...

时间:2020-02-02 06:30:23

相关推荐

android 淡入位移动画 Android动画 translate(位移) scale(缩放) alpha(淡入淡出) rotate(旋转)...

一、Android动画类型

Android的animation由四种类型组成

在xml文件中

alpha

渐变透明度动画效果

scale

渐变尺寸伸缩动画效果

translate

画面转换位置移动动画效果

rotate

画面转移旋转动画效果

在Java代码中

AlphaAnimation

渐变透明度动画效果

ScaleAnimation

渐变尺寸伸缩动画效果

TranslateAnimation

画面转换位置移动动画效果

RotateAnimation

画面转移旋转动画效果

二、Android动画模式

Animation主要有两种动画模式:

一种是tweened animation(渐变动画),Tween动画主要包括图片的放大缩小、旋转、透明度变化、移动等等操作。

alpha和scale类型

一种是frame by frame(画面转换动画),Frame动画则简单得多了,就是把一张张的图片连续播放产生动画效果。Frame动画主要是通过AnimationDrawable类来实现的,它有start()和stop()两个重要的方法来启动和停止动画。

translate和rotate类型

三、使用scale动画(以右上角为中心缩放)

在res目录中新建anim文件夹

在anim文件夹下创建窗口弹出动画dialog_show.xml

android:fromXScale="0"

android:toXScale="1"

android:fromYScale="0"

android:toYScale="1"

android:pivotX="100%"

android:pivotY="0%"

android:fillAfter="false"

android:duration="550" />

在anim文件夹下创建窗口消失动画dialog_dismiss.xml

android:fromXScale="1"

android:toXScale="0"

android:fromYScale="1"

android:toYScale="0"

android:pivotX="100%"

android:pivotY="0%"

android:fillAfter="false"

android:duration="550" />

在res/values下创建style

dialog_style.xml

@anim/dialog_show

@anim/dialog_dismiss

在java代码中设置

Window dialogWindow = dialog.getWindow();

WindowManager.LayoutParams lp = dialogWindow.getAttributes();

dialogWindow.setGravity(Gravity.RIGHT | Gravity.TOP); //对话框显示的位置

dialogWindow.setWindowAnimations(R.style.dialogWindowAnim);

(以右下角为中心缩放)

dialog_show.xml

android:fromXScale="0"

android:toXScale="1"

android:fromYScale="0"

android:toYScale="1"

android:pivotX="100%"

android:pivotY="100%"

android:fillAfter="false"

android:duration="550" />

dialog_dismiss.xml

android:fromXScale="1"

android:toXScale="0"

android:fromYScale="1"

android:toYScale="0"

android:pivotX="100%"

android:pivotY="100%"

android:fillAfter="false"

android:duration="550" />

scale.xml

android:interpolator= "@android:anim/decelerate_interpolator"

android:fromXScale="0.0"

android:toXScale="1.5"

android:fromYScale="0.0"

android:toYScale="1.5"

android:pivotX="50%"

android:pivotY="50%"

android:startOffset="0"

android:duration="10000"

android:repeatCount="1"

android:repeatMode="reverse" />

interpolator指定动画插入器

加速减速插入器 accelerate_decelerate_interpolator

加速插入器 accelerate_interpolator

减速插入器 decelerate_interpolator

fromXScale,fromYScale 动画开始前X,Y的缩放,0.0为不显示, 1.0为正常大小。

toXScale,toYScale 动画最终缩放的倍数, 1.0为正常大小,大于1.0放大。

pivotX,pivotY动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始。范围为0%-100%

android:pivotX="100%" android:pivotY="0%" 表示右上角

android:pivotX="100%" android:pivotY="100%" 表示右下角

android:pivotX="0%" android:pivotY="0%" 表示左上角

startOffset 动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间。

duration,一次动画效果消耗的时间,单位毫秒,值越小动画速度越快 repeatCount,动画重复的计数,动画将会执行该值+1次。

repeatMode,动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。

restart为重新执行,方向不变

四、使用translate动画

translate.xml

android:fromXDelta="320"

android:toXDelta="0"

android:fromYDelta="480"

android:toYDelta="0"

android:duration="10000" />

fromXDelta,fromYDelta 起始时X,Y座标,屏幕右下角的座标是X:320,Y:480

toXDelta, toYDelta 动画结束时X,Y的座标

五、使用alpha动画

alpha.xml

android:fromAlpha="0.0"

android:toAlpha="1.0"

android:duration="500" />

android:fromAlpha="1.0"

android:toAlpha="0.0"

android:duration="500" />

fromAlpha:开始时透明度

toAlpha: 结束时透明度

duration:动画持续时间

六、使用rotate动画

rotate.xml

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:fromDegrees="300"

android:toDegrees="-360"

android:pivotX="10%"

android:pivotY="100%"

android:duration="10000" />

fromDegrees 动画开始时的角度 toDegrees 动画结束时物件的旋转角度,正代表顺时针旋转,负数表示逆时针旋转 pivotX 属性为动画相对于物件的X坐标的开始位置 pivotY 属性为动画相对于物件的Y坐标的开始位置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。