<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>
这里的android:toYDelta="0",android:toYDelta="-100%",表示的是,这里取View的左上角那个点进行距离。
左上角点从0,到自身高度比例的100,反方向。也就是View往y轴上方走了自身的高度。