服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android开发之动画实现方法

Android开发之动画实现方法

2021-03-23 15:41imzoer Android

这篇文章主要介绍了Android开发之动画实现方法,实例分析了Android中动画的原理与实现技巧,需要的朋友可以参考下

本文实例讲述了Android开发之动画实现方法。分享给大家供大家参考。具体分析如下:

动画分为三种:

逐帧动画、布局动画和控件动画

控件动画实现

通过重写Animation的 applyTransformation (float interpolatedTime, Transformation t)函数来实现自定义动画效果,另外一般也会实现 initialize (int width, int height, int parentWidth, int parentHeight)函数,这是一个回调函数告诉Animation目标View的大小参数,在这里可以初始化一些相关的参数,例如设置动画持续时间、设置Interpolator、设置动画的参考点等。

OPhone在绘制动画的过程中会反复的调用applyTransformation 函数,每次调用参数interpolatedTime值都会变化,该参数从0渐变为1,当该参数为1时表明动画结束。通过参数Transformation 来获取变换的矩阵(matrix),通过改变矩阵就可以实现各种复杂的效果。

下面举例说明一个控件动画:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Animation anim = new Animation() {
  @Override
  protected void applyTransformation(float interpolatedTime, Transformation t) {
 if (interpolatedTime == 1) {
   v.setVisibility(View.GONE);
 }
 else {
   v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);
   v.requestLayout();
 }
  }
  @Override
  public boolean willChangeBounds() {
 return true;
  }
};

例子中,一个view的高度逐渐由原来的高度变为0。当动画结束之后,view消失。

希望本文所述对大家的Android程序设计有所帮助。

延伸 · 阅读

精彩推荐