android ViewFlipper实现公告栏
vf_keyword.setInAnimation(getContext(), R.anim.anim_marquee_in);//设置滚动进入动画
vf_keyword.setOutAnimation(getContext(), R.anim.anim_marquee_out);//设置滚动退出动画
vf_keyword.setFlipInterval(5_000);//设置滚动间隔
for (int i = 0; i < stringList.size(); i++) {
vf_keyword.addView(getTextView(stringList.get(i)));//添加子布局
}
if (vf_keyword.getChildCount() > 1) {
vf_keyword.startFlipping();//开始滚动,如果只有一个子view,则只有进入动画不会有退出动画
}
private TextView getTextView(String keyword) {
TextView textView = new TextView(getContext());
textView.setTextSize(16);
textView.setTextColor(Color.parseColor("#666666"));
textView.setMaxLines(1);
textView.setText(keyword);
return textView;
}
anim_marquee_in 进入动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
>
<translate
android:duration="1500"
android:fromYDelta="100%p"
android:toYDelta="0">
</translate>
</set>
anim_marquee_out 退出动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1500"
android:fromYDelta="0"
android:toYDelta="-100%p">
</translate>
</set>