<span style="white-space:pre"> </span> mTitleBar.setTitleImg(R.drawable.arrow_down);
mTitleBar.getTitleImgView().setTag(TITLE_IMG_TAG_DOWN);
layout.setVisibility(View.VISIBLE);
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_top_out);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
shader.setVisibility(View.GONE);
layout.setVisibility(View.GONE);
layout.clearAnimation();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
layout.setAnimation(animation);
animation.start();
这里最后两行代码的写法有问题,导致动画不能执行,操作了View之后才会执行,下面这种写法误用了。
layout.setAnimation(animation);
animation.start();
正确的写法:
layout.startAnimation(animation)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true">
<translate
android:duration="200"
android:fromYDelta="0"
android:toYDelta="-100%" />
<alpha
android:duration="200"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>
在这些属性里面还可以加上%和p,例如:
android:toXDelta="100%",表示自身的100%,也就是从View自己的位置开始。
android:toXDelta="80%p",表示父层View的80%,是以它父层View为参照的。
这里的android:toYDelta="0",android:toYDelta="-100%",表示的是,这里取View的左上角那个点进行距离。
左上角点从0,到自身高度比例的100,反方向。也就是View往y轴上方走了自身的高度。