Android

这周忙的依旧,真希望自己可以变成三头六臂,同时工作,呵呵!

所以我就周内的一些知识总结一下,备忘!

 

1.TranslateAnimation是移动的动画效果。它有三个构造函数,我使用的是下面介绍的这一构造函数:

     public TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

  说明:

  float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;

  float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;

  float fromYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;

  float toYDelta)这个参数表示动画开始的点离当前View Y坐标上的差值;

  如果view在A(x,y)点 那么动画就是从B点(x+fromXDelta, y+fromYDelta)点移动到C 点(x+toXDelta,y+toYDelta)点.

 

 

 

通过setDuration()方法可以设置动画的时长;

setInterpolator()方法可以设置动画的插入器,有以下三个可以选择:

  • accelerate_decelerate_interpolator  加速-减速 动画插入器
  • accelerate_interpolator        加速-动画插入器
  • decelerate_interpolator        减速- 动画插入器

 

如果动画结束后有其他操作,则对该动画进行监听,并在onAnimationEnd(Animation arg0)这一内部方法里加上自己的处理。


        animation.setAnimationListener(new Animation.AnimationListener() {

            @Override
            public void onAnimationStart(Animation arg0) {
                Log.d(TAG, "onAnimationStart");
            }

            @Override
            public void onAnimationRepeat(Animation arg0) {
                Log.d(TAG, "onAnimationRepeat");
            }

            @Override
            public void onAnimationEnd(Animation arg0) {
                Log.d(TAG, "onAnimationEnd");

                //add function
            }
        });

 

     注:在对于某个组件启动这一动画时,使用 view.startAnimation(animation);

因为我在使用view.setAnimation(animation);animation.start();后出现了一些诡异的现象无法解释,而使用上面那个方法就不会有问题,所以建议使用startAnimation方法

 

 

 

 

2.PopupWindow:

showAsDropDown(anchor, xoff, yoff);

说明:

anchor:相对于哪一个组件

xoff:相对于该组件的x轴距离

yoff:相对于该组件下边框的y轴距离

 

setAnimationStyle(int):

      如果要设置popWindow显示或退出时的动画,则需要在style中进行设置,参考代码如下:

<style name="animationPopWindow">
        <item name="android:windowEnterAnimation">@anim/popwindow_in_anim</item>
    </style>

 

其中:popwindow_in_anim是自定义的动画

 

  这样popWindow则会以我们设定的方式显示或退出。

 

 

 

 

你可能感兴趣的:(android)