Android View动画——代码动态生成动画

本文详细介绍了如何在Android中使用代码动态创建各种视图动画,包括ScaleAnimation、AlphaAnimation、RotateAnimation、TranslateAnimation和AnimationSet,并讨论了Interpolater插值器的使用,提供了相应的构造函数和示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I won’t just survive,Oh, you will see me thrive.Can’t write my story,I’m beyond the archetype.
——我不会只是苟延残喘。你会见证我再次冉冉直指蓝天。你说我不能留下我的诗篇,我却在不停跨越桎梏和界限。

1. 概述

前述利用了XML来定义动画及插值器,但实际中更多是动态生成动画。这里介绍用代码动态生成动画及插值器

标签对应类

  • scale —— ScaleAnimation
  • alpha —— AlphaAnimation
  • rotate —— RotateAnimation
  • translate —— TranslateAnimation
  • set —— AnimationSet

2. Animation公共类

Animation类是所有动画(scale、alpha、translate、rotate)的基类,它所具有的标签及对应函数为:

XML属性 对应函数 说明
android:duration setDuration(long) 动画持续时间,以毫秒为单位
android:fillAfter setFillAfter(boolean) 为true时,控件动画结束,保持动画最后时状态
android:fillBefore setFillBefore(boolean) 为true时,控件动画结束时,还原到开始动画前的状态
android:fillEnabled setFillEnabled(boolean) 与android:fillBefore 效果相同
android:repeatCount setRepeatCount(int) 重复次数
android:repeatMode setRepeatMode(int) 重复类型,有reverse和restart两个值,取值为RESTART或 REVERSE,必须与repeatCount一起使用才能看到效果。因为这里的意义是重复的类型,即回放时的动作
android:repeatMode setInterpolator(Interpolator) 设定插值器,其实就是指定的动作效果,比如弹跳效果等

3. ScaleAnimation

ScaleAnimation有以下几个构造函数:

ScaleAnimation(Context context, AttributeSet attrs)  //从XML文件加载动画,基本用不到
    
ScaleAnimation(float fromX, float toX, float fromY, float toY)
    
ScaleAnimation(float fromX, float toX, float fromY, float toY, float pivotX, float pivotY)
    
ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

第一个构造函数是从本地XML文件加载动画

标签属性android:pivotX中有三种取值,数,百分数,百分数p;体现在构造函数中,就是最后一个构造函数的pivotXType,它的取值有三个:Animation.ABSOLUTEAnimation.RELATIVE_TO_SELFAnimation.RELATIVE_TO_PARENT

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0"
    android:toXScale="1.4"
    android:fromYScale="0.0"
    android:toYScale="1.4"
    android:pivotX="50"
    android:pivotY="50"
    android:duration="700" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值