view学习笔记(四)
我们上一节学习了view的滑动,通过view的scrollTo()和scrollBy()方法。那么,还有没有其它的方法可以使view滑动呢?答案当然是肯定的。本节我们将通过动画的方式来使view滑动。
使用动画来移动view,主要是操作view的translationX和translationY属性,这两个属性我们应该都非常熟悉,在view的第一篇笔记关于view的坐标时我们就已经解释过她们了。translationX、translationY是view左上角相对于父容器的偏移量。
ObjectAnimator.ofFloat(btn,"translationX",0,100).setDuration(1000).start();
如上面的代码就可以使btn这个按钮向右平移100像素。
值得注意的是:view动画(还有帧动画以及属性动画,属性动画就是上面代码的方式)
xml格式
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true"
android:duration="200"
android:fillAfter="true"
android:zAdjustment="normal"
>
<translate
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"/>
</set>
代码格式
Animation animation = AnimationUtils.loadAnimation(this, R.anim.animation);
view.startAnimation(animation);
在使view移动的过程中只是对view的映像进行操作,并不会真正的移动view的位置。也不会对view的属性值进行改变。当我们移动view到指定位置时移动的影像会消失,如果我们想要使影像停留在最后的位置,我们需要设置 android:fillAfter="true"这个属性。所以如果我们对view进行了点击等事件,那么,我们对影像进行点击是不会起作用的,因为我们并没有真正的改变view 的位置。
对于view的移动,其实还有一种方法,就是通过改变布局参数的方式。
改变布局就是通过改变view的相邻的view的布局属性或是改变父布局的布局属性等,相对的来移动view 的位置。因为这种方式不常用而且比较简单,所以我们就不做介绍了。
那么,关于view 的移动,我们已经讲解了三种方法了:
通过view 的scrollTo,scrollBy方法
通过动画的方式
通过改变布局参数的方式