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

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

目录


View的滑动方式

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

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

View动画

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

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

<?xml version=”1.0” encoding=”utf-8”?> 
<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,结束睡觉去

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值