我需要逐步显示/消失某个视图,一步一步而不是突然。如果我使用MyView.setvisibility(View.GONE)
或MyView.setvisibility(View.VISIBLE)
,一切都会突然发生。知道怎么做吗?
提前致谢。
这是我的代码:
animFlipInNext = AnimationUtils.loadAnimation(this,
R.anim.push_left_in);
animFlipInNext.setDuration(2000);
animFlipInNext
.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
System.out.println("AnimStart- LeftIn"
+ " Will be displayed "
+ vf.getDisplayedChild());
if (vf.getCurrentView().equals(rr)) {
System.out.println("begin layout for video");
rr.addView(myVideoView);
myVideoView.setAnimation(AnimationUtils.loadAnimation(context, R.anim.fade_in));
/* myVideoView.startAnimation(new MyScaler(1.0f,
1.0f, 0.0f, 1.0f, 2500, myVideoView,
true));*/
}
}
@Override
public void onAnimationRepeat(Animation animation) {
System.out.println("AnimRepeat-LeftIn");
}
@Override
public void onAnimationEnd(Animation animation) { System.out.println("Anim end "
+ vf.getDisplayedChild());
if (vf.getCurrentView().equals(rr)) {
System.out.println("layout for videoView");
rr.removeAllViews();
vf.stopFlipping();
myVideoView.start();
}
}
});
我有一个ViewFlipper的动画。当ViewFlipper包含rr RelativeLayout
时,我会向其添加视频。我正在为rr
转换时看到视频,但它没有用。
答案 0 :(得分:6)
View Animations是实现此恕我直言的最简单方法。
将其放在/res/anim/fade_in.xml
中 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2200"></alpha>
</set>
然后在您的活动代码中,可能onResume就像:
someView.setAnimation(AnimationUtils.loadAnimation(context, R.anim.fade_in));
这会让你在2.2秒内消失。像AccelerateDecelerateInterpolator一样为xml添加了插值器,如果你愿意,可以更自然地感觉消失。