【View基础知识】View滑动之动画

本系列文章部分摘自《Android开发艺术探索》,目的是提取精干知识点加上自己部分理解作为备忘笔记,如有侵权请及时联系我,再次感谢作者,如喜欢请支持购买作者正版书籍

目录

  • 目录
  • View的滑动方式
  • View动画
  • 属性动画


View的滑动方式

View 的滑动主要通过三种方式实现:

  • 通过View本身提供的scrollTo/scrollBy
  • 通过动画实现View的滑动
  • 通过改变View的LayoutParams使View重新布局实现滑动

View动画

通过动画我们能够让一个View进行平移,而平移就是一种滑动。使用动画来操移动View,主要是操作View的translationX和translationY属性,既可以采用传统的View动画也可以用属性动画(3.0一下现在基本上没有了所以不用考虑属性动画的兼容性问题)。

使用方法
在anim中定义动画animation.xml

 
<set xmlns:android=”http://schemas.android.com/apk/res/androidandroid:fillAfter = "true"
    android:zAdjustment = "normal">
    <translate 
    android:duration="100"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="100"
    android:toYDelta="100"
    android:interpolator="@android:anim/linear_interpolator"/> 
set>

或者代码定义

TranslateAnimation translateAnimation = newTranslateAnimation (0,0,100,100); 
translateAnimation.setDuration(100); 
translateAnimation.setFillAfter(true);

调用方法

view.startAnimation(AnimationUtils.loadAnimation(this,R.anim.animation));  

属性动画

属性动画稍微写法稍微简单些

ObjectAnimator.ofFloat(targetView,"translationX",0,100).setDuration(100).start();

需要注意几点:使用传统的View动画来进行滑动,View动画是对View的影像做操作,并不能真正改变View的位置参数,包括宽高(比如动画结束后点击区域依然还在原来的位置响应,新位置不会响应该View的点击事件),并且如果希望动画后的状态得到保留必须把fillAfter设置为true,否则动画完成后就会消失变为原来的初始状态。使用属性动画并不会带来上面一系列的问题

ok,结束睡觉去

你可能感兴趣的:(Android基础)