文本上下滚动轮播效果

  • 文本上下滚动轮播效果

    模拟的效果图


    //新闻轮播需要的假数据和进场出场动画效果
    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);
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值