文本上下滚动轮播效果

  • 文本上下滚动轮播效果

    文本上下滚动轮播效果_第1张图片


    //新闻轮播需要的假数据和进场出场动画效果
    private String[] newsContent = {"该生不生,就是畜生。", "宁可血流成河,不准只生一个。", "多生孩子多种树,多生孩子防养老!",
            "二胎奖,一胎罚,丁克不育都该抓。", "生男生女都一样,不然儿子没对象。", "一人拒绝多生,全村人工受精。"};
    private void initAnimation() {
        mTvOne.setText(newsContent[mNewsCount + 1]);
        //滚动退场的动画
        mExitAnimation = new TranslateAnimation(
                TranslateAnimation.RELATIVE_TO_PARENT, 0,
                TranslateAnimation.RELATIVE_TO_PARENT, 0,
                TranslateAnimation.RELATIVE_TO_PARENT, 0,
                TranslateAnimation.RELATIVE_TO_PARENT, -1
        );
        mExitAnimation.setDuration(500);
        mExitAnimation.setFillAfter(true);

        //滚动进场的动画
        mEnterAnimation = new TranslateAnimation(
                TranslateAnimation.RELATIVE_TO_PARENT, 0,
                TranslateAnimation.RELATIVE_TO_PARENT, 0,
                TranslateAnimation.RELATIVE_TO_PARENT, 0,
                TranslateAnimation.RELATIVE_TO_PARENT, -1
        );
        mEnterAnimation.setDuration(500);
        mEnterAnimation.setFillAfter(true);

        //设置动画监听器,在动画播放结束时切换两个文本框的内容
        mEnterAnimation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

                mNewsCount++;
                if (mNewsCount == newsContent.length - 1) {

                    mNewsCount = -1;
                }
                mTvTwo.setText(newsContent[mNewsCount + 1]);
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                mTvOne.setText(newsContent[mNewsCount + 1]);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
    }
        private void startXWLB() {
            if (mNewsTimer == null) {
                mNewsTimer = new Timer();
                mNewsTimer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        ((MainActivity) mContext).runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                mTvOne.startAnimation(mExitAnimation);
                                mTvTwo.startAnimation(mEnterAnimation);
                            }
                        });
                    }
                }, 0, 2000);
            }
        }

你可能感兴趣的:(文本上下滚动轮播效果)