"Android中的动画"-Android面试必问"精华技能点"汇总

  • 一Android中的动画有哪几类它们的特点和区别是什么
    • 帧动画图像动画Drawable Animation
    • 补间动画View Animation
    • 属性动画Property Animation-是30之后才有的
    • 属性动画和补间动画的区别
    • 动画插入器是什么
  • 二如何修改Activity进入和退出动画
    • 一通过定义Activity的主题
      • 在stylesxml中编辑如下代码
      • 添加themesxml文件
    • 二通过覆写Activity的overridePendingTransition 方法

一.Android中的动画有哪几类,它们的特点和区别是什么?

根据谷歌官方文档,动画分为3种:

1.帧动画/图像动画(Drawable Animation)

  • 1.xml方式->配置一组图片,动态播放

2.补间动画(View Animation)

  • 1.位移动画
  • 2.缩放动画
  • 3.旋转动画
  • 4.透明动画
  • 5.集合

3.属性动画(Property Animation)-是3.0之后才有的

  • 拥有补间动画所有的功能

属性动画和补间动画的区别:

  • 补间动画:
    • 父容器不断的绘制view,看起来像移动了效果,其实view没有变化,还在原地
  • 属性动画:
    • 是通过不断改变自己view的属性值,真正的改变view.
  • 两者的代码写法如下:
//补间动画
public void clickViewAnimation(View view) {
    //位移动画,x方向不变,y有0->250
    TranslateAnimation animation = new TranslateAnimation(0, 0, 0, 250);
    //时长
    animation.setDuration(2000);
    //停在结果位置
    animation.setFillAfter(true);
    //控件开始动画,传入动画
    iv.startAnimation(animation);
}
//属性动画
public void clickViewProperty(View view) {
    //动画对象:控件以及动画的类型都写在里面,然后是一组"不尽"的数组:比如Y方向的0->250又上又下
    ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "translationY", 0,
            250, 100, 200, 250);
    //时长
    animator.setDuration(5000);
    //对象开始
    animator.start();
}
//测试他两的区别
public void clickIv(View view) {
    Toast.makeText(this, "点击了图片", Toast.LENGTH_SHORT).show();
}

动画插入器是什么?

  • 是各种效果实现所要用到的,比如加速,比如来回摆动等等
  • 用法是:(一句代码)直接在动画开始前设置即可:
animation.setInterpolator(new XXXInterpolator())

二.如何修改Activity进入和退出动画

(可以通过两种方式):

一通过定义Activity的主题

在styles.xml中编辑如下代码:

添加themes.xml文件:

二通过覆写Activity的overridePendingTransition 方法。

overridePendingTransition(R.anim.fade, R.anim.hold);
@Override
public void overridePendingTransition(int enterAnim, int exitAnim) {
    super.overridePendingTransition(enterAnim, exitAnim);
}

你可能感兴趣的:(Android,android动画,补间动画,属性动画,帧动画)