android scale xml,android 使用xml方式生成alpha,scale,translate,rotate四种动画

现在使用这种动画的越来越少了,大部分都是使用了属性动画了,但是作为学习还是有用的,主要是这个动画有一个致命的缺点就是不能交互,现在分别介绍下这四种动画作用

alpha:渐变透明度动画效果

scale:渐变尺寸伸缩动画效果

translate:平移动画

rotate:旋转动画

在res下创建一个anim文件夹,这里是存放我们平时创建的xml动画,如图:

d6b2cdff6b620fec578ae0482f8840ba.png

它的访问方式和访问在drawable存放的图片类似,R.anim.alpha即可!

1)alpha 透明度动画

首先看下alpha.xml中属性有哪些

android:fromAlpha=""

android:toAlpha=""

android:interpolator=""

android:fillEnabled=""

android:fillBefore=""

android:fillAfter=""

android:duration=""

android:startOffset=""

android:repeatCount=""

android:repeatMode=""

android:zAdjustment=""

>

其中

android:fromAlpha="" android:toAlpha=""

这二个属性是alpha动画特有的,其他的都是和其他动画一样都有得,首先把这些共有的动画属性讲解下:

android:duration动画持续时间,以毫秒为单位

android:fillAfter如果设置为true,控件动画结束时,将保持动画最后时的状态(指的是view的状态)

android:fillBefore如果设置为true,控件动画结束时,还原到开始动画前的状态(指的是view的状态)

android:fillEnabled与android:fillBefore 效果相同,都是在动画结束时,将控件还原到初始化状态

android:repeatCount重复次数

android:repeatMode重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重新放一遍,必须与repeatCount一起使用才能看到效果。因为这里的意义是重复的类型,即回放时的动作。

android:interpolator设定插值器,后面会专门讲

现在讲下alpha的特有属性

android:fromAlpha=""  //动画开始的透明度,从0.0 --1.0 ,0.0表示全透明(看不见),1.0表示完全不透明 android:toAlpha=""  //动画结束时的透明度,也是从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明

如果是0.0到1.0就是从看不见到慢慢眼睛能看见的过程,

代码使用如下:

Animation alphaAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha);//通过android提供的AnimationUtils动画工具类加载xml动画

iv.startAnimation(alphaAnimation);//动画作用于view上,

2):rotate旋转动画   rotate特有的四个动画属性

android:fromDegrees=""

android:toDegrees=""

android:pivotX=""

android:pivotY=""

>

android:fromDegrees开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数

android:toDegrees结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数

android:pivotX缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 30、30%、30%p

android:pivotY缩放起点Y轴坐标,同上

说明:

如果pivotx是数值,比如30表示的是在当前View的左上角,即原点处加上50px

如果pivotx是30%表示在当前控件的左上角加上自己宽度的50%

如果pivotx是30%p表示的是的左上角加上父控件宽度的30%做为起始点x轴坐标

下面画图演示刚才几个值

493118547a47be515e94ca6df0ce0bb9.png

如果还不知道围绕这个点旋转是怎么样的话,就想象把这个点当做一个圆心 然后用圆规画一个就知道是什么效果了,

如果是50%的话,就表示在view宽度*50%就是宽度的一般 如图:

f957e55bef79b29c1b231400ab66b74f.png

如果是50%p的话 如图:

3b869e446432da91d256fdc3e8c0db6e.png

3):scale缩放动画

先看下scale.xml文件中关于缩放动画几个关键的属性

android:fromXScale=""

android:toXScale=""

android:fromYScale=""

android:toYScale=""

android:pivotX=""

android:pivotY=""

android:duration="5000"

>

android:fromXScale起始的X方向上相对自身的缩放比例,浮点值,比如1.0代表自身无变化,0.5代表起始时缩小一倍,2.0代表放大一倍;

android:toXScale结尾的X方向上相对自身的缩放比例,浮点值;

android:fromYScale起始的Y方向上相对自身的缩放比例,浮点值,

android:toYScale结尾的Y方向上相对自身的缩放比例,浮点值;

android:pivotX缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,同上面讲解一样

android:pivotY缩放起点Y轴坐标,同上

4)translate平移动画

translate.xml

android:fromXDelta=""

android:toXDelta=""

android:fromYDelta=""

android:toYDelta=""

>

平移动画关键四个属性

android:fromXDelta起始点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,同上

android:fromYDelta起始点Y轴从标,可以是数值、百分数、百分数p 三种样式;

android:toXDelta结束点X轴坐标

android:toYDelta结束点Y轴坐标

来个demo玩玩:

android:fromXDelta="0"

android:toXDelta="0"

android:fromYDelta="100%p"

android:toYDelta="-100%p"

android:duration="500"

android:fillAfter="true"

android:repeatCount="10"

android:repeatMode="restart"

>

从底部平移穿过上面屏幕  类似发火箭的功能,

5):set是几个动画的集合放在一起

比如这样

android:duration="3000"

android:fillAfter="true">

android:fromDegrees="0"

android:toDegrees="720"

android:pivotX="50%"

android:pivotY="50%"/>

android:fromAlpha="0.0"

android:toAlpha="1.0"/>

android:fromXScale="0.0"

android:toXScale="1.4"

android:fromYScale="0.0"

android:toYScale="1.4"

android:pivotX="50%"

android:pivotY="50%"/>

没有什么特别的动画属性,就是累加放在一起,看起来是几个动画一起执行,达到一定效果,ok,到此为止!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值