文本上下滚动轮播效果
//新闻轮播需要的假数据和进场出场动画效果
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);
}
}