Android自定义控件动画篇(一)alpha、scale、translate、rotate、set的xml属性及用法

在Android中,自定义控件时经常需要使用动画效果来增强用户体验。Android提供了几种基本的动画类型,可以通过XML文件来定义这些动画,它们分别是:alpha(透明度)、scale(缩放)、translate(平移)、rotate(旋转)以及set(组合动画)。下面分别介绍这几种动画的XML属性及其用法。

1. Alpha(透明度动画)

Alpha动画用于改变视图的透明度,从完全不透明到完全透明。

XML属性定义示例:

Xml
1<alpha
2    android:duration="1000" // 动画持续时间,单位为毫秒
3    android:fromAlpha="1.0" // 动画起始时的透明度,1.0为不透明
4    android:toAlpha="0.0" /> // 动画结束时的透明度,0.0为完全透明

2. Scale(缩放动画)

Scale动画用于改变视图的大小。

XML属性定义示例:

Xml
1<scale
2    android:duration="1000"
3    android:fromXScale="1.0" // 水平方向起始缩放比例
4    android:fromYScale="1.0" // 垂直方向起始缩放比例
5    android:pivotX="50%" // 缩放中心点的X坐标,可以是百分比或具体像素值
6    android:pivotY="50%" // 缩放中心点的Y坐标
7    android:toXScale="2.0" // 水平方向结束缩放比例
8    android:toYScale="2.0" /> // 垂直方向结束缩放比例

3. Translate(平移动画)

Translate动画使视图在屏幕上的位置发生变化。

XML属性定义示例:

Xml
1<translate
2    android:duration="1000"
3    android:fromXDelta="0" // X轴起始位移,正值向右,负值向左,可以是具体像素值或百分比
4    android:fromYDelta="0" // Y轴起始位移,正值向下,负值向上
5    android:toXDelta="100" // X轴结束位移
6    android:toYDelta="100" /> // Y轴结束位移

4. Rotate(旋转动画)

Rotate动画使视图围绕一个点进行旋转。

XML属性定义示例:

Xml
1<rotate
2    android:duration="1000"
3    android:fromDegrees="0" // 起始旋转角度
4    android:pivotX="50%" // 旋转中心点的X坐标
5    android:pivotY="50%" // 旋转中心点的Y坐标
6    android:toDegrees="360" /> // 结束旋转角度

5. Set(组合动画)

Set允许你将多个动画组合在一起同时执行或顺序执行。

XML属性定义示例:

Xml
1<set>
2    <alpha ... />
3    <scale ... />
4    <translate ... />
5    <rotate ... />
6</set>

<set>标签中,你可以使用android:interpolator属性来指定插值器,控制动画的速度变化;使用android:repeatCountandroid:repeatMode属性来控制动画的重复次数和重复模式。

要应用这些动画到控件上,可以通过AnimationUtils.loadAnimation(Context context, int id)方法加载XML动画资源,并使用View.startAnimation(Animation animation)方法启动动画。

例如:

Java
1Animation anim = AnimationUtils.loadAnimation(this, R.anim.my_animation);
2myView.startAnimation(anim);

其中,R.anim.my_animation是你在res/anim目录下定义的动画资源ID。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值