Android自定义控件动画篇之视觉动画

您所在的位置:网站首页 unity匀速旋转 Android自定义控件动画篇之视觉动画

Android自定义控件动画篇之视觉动画

2023-03-21 21:41| 来源: 网络整理| 查看: 265

Android的动画由5种类型组成:alpha,scale,translate,rotate,set

alpha:渐变透明度scale:缩放尺寸translate:画面变换位置rotate:画面旋转set:动画集

我们需要在res文件夹中创建anim文件夹

代码调用

Animation animation = AnimationUtils.loadAnimation(this, R.anim.test); textView.startAnimation(animation);

一.文件调用

1.scale(缩放)

android:fromXScale:动画开始时,控件在X轴的缩放比例android:toXScale:动画结束时,控件在X轴的缩放比例android:fromYScale:动画开始时,控件在Y轴的缩放比例android:toYScale:动画结束时,控件在Y轴的缩放比例android:pivotX:缩放点X轴坐标android:pivotY:缩放点Y轴坐标

android:fromXScale="1.0" android:toXScale="0.4" android:fromYScale="1.2" android:toYScale="0.6" android:duration="700" android:pivotX="50" android:pivotY="50" >

android:duration是动画时间 android:pivotX和android:pivotY都有三种取值方式,以50为例。分别有50,50%,50%p

android:pivotX="50"android:pivotY="50"

以控件的左上角为坐标原点,向右移动50px,向下移动50px。

android:pivotX="50%"android:pivotY="50%"

以控件的左上角为坐标原点,在原点坐标的基础上加上宽度的50%。

android:pivotX="50%p"android:pivotY="50%p"

当取值在百分数后加上一个字母p时,表示在原点坐标的基础上加上宽度的100%。

2.alpha(透明)

android:fromAlpha:动画开始时的透明度,取值0.0-1.0android:toAlpha:动画结束时的透明度,取值0.0-1.0

3.rotate(旋转)

android:fromDegrees:开始时的角度android:toDegrees:结束时的角度android:pivotX:旋转中心点X轴坐标android:pivotY:旋转中心点Y轴坐标

android:fromDegrees="0" android:toDegrees="-650" android:pivotY="50" android:pivotX="50" >

4.translate(平移)

android:fromXDelta:起始点X轴,同样有三种格式android:fromYDelta:起始点Y轴android:toXDelta:终点X轴android:toYDelta:终点Y轴

android:fromXDelta="0" android:fromYDelta="-8" android:toXDelta="0" android:toYDelta="-80">

5.set(集合)

android:duration="700"> android:fromAlpha="1.0" android:toAlpha="0.1" /> android:fromDegrees="0" android:pivotX="50" android:pivotY="50" android:toDegrees="-650" /> android:duration="700" android:fromXScale="1.0" android:fromYScale="1.2" android:pivotX="50%p" android:pivotY="50%p" android:toXScale="0.4" android:toYScale="0.6" /> android:fromXDelta="0" android:fromYDelta="-8" android:toXDelta="0" android:toYDelta="-80" />

6.Animation属性

android:duration:一次动画的持续时间,以毫秒为单位android:fillAfter:设置为true,动画结束时,保持状态android:fillBefore:设置为true,动画结束时,恢复原来状态android:fillEnabled:与android:fillBefore效果相同android:repeatCount:重复动画的次数,当值为infinite时,表示无限android:repeatMode:有两个值:reverse和restart。reverse表示倒放,restart表示回放。二.代码调用标签类alphaAlphaAnimationscaleScaleAnimationtranslateTranslateAnimationrotateRotateAnimationsetAnimationSet标签属性方法android:durationvoid setDuration(long durationMillis)android:fillAftervoid setFillAfter(boolean fillAfter)android:fillBeforevoid setFillBefore(boolean fillBefore)android:fillEnabledvoid setFillEnabled(boolean fillEnabled)android:repeatCountvoid setRepeatCount(int repeatCount)android:repeatModevoid setRepeatMode(int repeatMode)

对应android:pivotX和 android:pivotY也有相应方法。

xml代码50Animation.ABSOLUTE50%Animation.RELATIVE_TO_SELF50%pAnimation.RELATIVE_TO_PARENT

Animation除了一些属性外,还有一些函数可以调用

取消动画

void cancel()

重置动画

void reset()

动画监听

animation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } });

三.插值器

当我们定义一个动画时,我们可以通过插值器改变动画的速度。

类XMLAccelerateDecelerateInterpolator@android:anim/accelerate_decelerate_interpolatorAccelerateInterpolator@android:anim/accelerate_interpolatorAnticipateInterpolator@android:anim/anticipate_interpolatorAnticipateOvershootInterpolator@android:anim/anticipate_overshoot_interpolatorBounceInterpolator@android:anim/bounce_interpolatorCycleInterpolator@android:anim/cycle_interpolatorDecelerateInterpolator@android:anim/decelerate_interpolatorLinearInterpolator@android:anim/linear_interpolatorOvershootInterpolator@android:anim/overshoot_interpolator类意思AccelerateDecelerateInterpolator加速减速插值器 ,在动画中间加速AccelerateInterpolator加速插值器,在动画开始后加速AnticipateInterpolator初始偏移插值器,动画开始时向前偏移一段距离,然后应用动画AnticipateOvershootInterpolator是 AnticipateInterpolator与OvershootInterpolator 的结合BounceInterpolator弹跳插值器,模拟控件自由落地后回弹的效果CycleInterpolator循环插值器,动画想你换特定次数,速率沿正弦曲线改变DecelerateInterpolator减速插值器,在动画开始后减速LinearInterpolator线性插值器,匀速加速OvershootInterpolator结束偏移插值器,在动画结束时,沿动画方向继续运动一段时间,在结束动画

调用的方法有两种 XML调用

android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="700" android:interpolator="@android:anim/accelerate_decelerate_interpolator " >

代码调用

animation.setInterpolator(new AccelerateDecelerateInterpolator());



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3