您的位置:首页 > 移动开发 > Android开发

Android常用的动画和小型代码理解

2017-09-25 10:59 211 查看
动画方式主要有两种补间动画和属性动画,这两种方式也没有实际改变view布局位置,需要值得注意的是补间动画执行结束后效果会瞬间回到原来的位置,是对影像进行操作,将fillAfter属性改为true就不会有这种效果,属性动画则没有这一特性。举个栗子:

/*补间动画*/

TranslateAnimation
animation = new TranslateAnimation(0,300,0,0);

animation.setDuration(2000);

animation.setFillAfter(true);

btn_scroll.startAnimation(animation);

/*属性动画*/

ObjectAnimator
animator = ObjectAnimator.ofFloat(btn_scroll,"translationX",0,300);

animator.setDuration(2000).start();

而补间动画还会有一个问题,当Button滑动完成之后,再点击Button没有任何响应,而点击Button之前的位置仍可以触发onClick()事件,属性动画没有这一特性。

还有俩种可以实现滑动那就是

一、

这两个方法都是View自带的滑动方法,即每个控件都可以通过调用这两个方法实现滑动。scrollBy()方法的实现本质也是调用scrollTo()方法,不同之处在于。scrollyTo()方法参数是确定滑动位置的终点,即要滑动到哪儿去,绝对坐标。而scrollBy()方法参数是形容要滑动的距离,要滑动多少,根据当前位置的相对坐标

二、


修改布局参数

前面讲到的两种方式都提到并没有真正改变布局参数,这回终于说到改变布局参数而实现。。这种方式是直接改变View在父view中的布局位置,比如要实现上图Button右滑300像素,则将View左边到父View左边的距离Left,View右边到父View左边的距离Right增加300px(对视图坐标系不太清楚的可以参考这篇文章:坐标系),即可实现
btn_scroll.layout(btn_scroll.getLeft()+300,btn_scroll.getTop(),btn_scroll.getRight()+300,btn_scroll.getBottom());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息