如何使视图逐渐出现,而不是突然出现

时间:2011-12-15 07:02:08

标签: android view visibility

我需要逐步显示/消失某个视图,一步一步而不是突然。如果我使用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转换时看到视频,但它没有用。

1 个答案:

答案 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添加了插值器,如果你愿意,可以更自然地感觉消失。