安卓属性的动画,改变大小,动态消失


在Android开发中,属性动画(Property Animation)是一个强大的工具,它允许开发者实现各种复杂的视觉效果,如对象的平移、旋转、缩放以及淡入淡出等。本篇将深入探讨如何利用属性动画来实现“改变大小”、“动态消失”以及“先变大后变小”和“旋转”等多种动画效果。 一、属性动画简介 属性动画是Android 3.0(API level 11)引入的新特性,与视图动画(View Animation)不同,视图动画只改变了视图的绘制状态,并不真正改变对象的状态,而属性动画则能够真正地更新对象的属性值,使得动画效果更为真实。通过`android.animation`包中的类,我们可以创建和控制属性动画。 二、改变大小(Scale Animation) 要实现对象大小的变化,我们可以使用`ObjectAnimator`类。我们需要获取要动画化的对象,然后设置动画的目标属性。例如,我们可以用以下代码让一个视图先放大再缩小: ```java ObjectAnimator scaleUp = ObjectAnimator.ofFloat(view, "scaleX", 1.5f, 1.0f); ObjectAnimator scaleDown = ObjectAnimator.ofFloat(view, "scaleY", 1.5f, 1.0f); scaleUp.setDuration(500); scaleDown.setDuration(500); scaleUp.start(); scaleDown.start(); ``` 三、动态消失(Fade Animation) 动态消失可以通过改变对象的透明度来实现。我们可以使用`ObjectAnimator`的`ofFloat`方法,对`alpha`属性进行操作: ```java ObjectAnimator fadeOut = ObjectAnimator.ofFloat(view, "alpha", 1.0f, 0.0f); fadeOut.setDuration(1000); fadeOut.start(); ``` 四、旋转(Rotate Animation) 旋转动画同样可以借助`ObjectAnimator`实现,这次我们修改的是`rotation`属性: ```java ObjectAnimator rotate = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f); rotate.setDuration(2000); rotate.start(); ``` 五、组合动画 为了实现“先变大后变小”的效果,我们可以将上面的`scaleUp`和`scaleDown`动画串联起来,通过`AnimatorSet`类来组合它们: ```java AnimatorSet animationSet = new AnimatorSet(); animationSet.play(scaleUp).before(scaleDown); animationSet.start(); ``` 六、使用资源动画 在`property_animation`文件夹中,通常会包含XML格式的动画资源文件,比如`res/anim`目录下的`scale.xml`、`fade.xml`和`rotate.xml`。这些文件可以定义动画的细节,如持续时间、动画类型等。通过`AnimatorInflater`,我们可以加载并执行这些动画: ```java AnimatorSet animationSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.your_animation); animationSet.setTarget(view); animationSet.start(); ``` 七、自定义动画属性 除了系统提供的属性外,开发者还可以自定义动画属性。只需要在对象中添加`Animator.AnimatorListener`,并重写`onAnimateChange`方法,就可以在动画执行期间监听属性变化,从而实现更复杂的效果。 总结,属性动画在Android开发中提供了丰富的视觉效果和交互体验,开发者可以根据需求灵活地组合和定制各种动画。通过理解和实践,你可以创造出令人眼前一亮的用户界面。无论是简单的改变大小、消失,还是复杂的旋转,属性动画都能轻松应对。



























































































































































- 1


- 粉丝: 42
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于Reactjs开发的BitSearch搜索引擎前端界面-集成文字网页搜索与图片搜索功能-支持搜索建议历史记录与热门关键词-采用分页与过滤机制优化用户体验-专为高效信息检索与数.zip
- 基于SpringBoot和Vue前后端分离技术构建的私有化网络硬盘系统-支持多空间管理模式如我的文件部门文件公共文件共享空间具备权限分配存储空间限制文件任务上报安全加密分享功能-适.zip
- 基于OpenCV和Vue3的现代化Web图像处理应用开发模板-包含Vite构建工具-TypeScript类型支持-Volar插件集成-ESLint代码规范-热重载开发环境-生产环境.zip
- ChatGPT 模板页面全新升级:接入通意千问 API,解锁更多可能
- 基于Python的网络流量异常检测与分类系统-实时捕获网络数据包进行流量分析与可视化-用于网络安全监控与异常流量识别-Scapy捕获数据包-机器学习算法分类流量-深度学习模型检测异.zip
- 中国职业经理人(CCMC)培训-有效辅导与激励下属(PPT-69页).ppt
- 第三章--施工组织设计管理.docx
- 直流电动机开环调速MATLAB系统仿真.doc
- 道路交通事故信息代码.doc
- 353基于高抗震性能要求的装配式主次梁节点施工工法.pdf
- 城市道路工程监理控制要点多图.docx
- 物业设施档案管理规程.doc
- 毕业设计如何写开题报告.doc
- 学习总结用multisim软件画电路图.doc
- 广东抛石护案施工组织设计.docx
- 全套建筑装饰施工工艺详细图解.ppt


