使用ViewFlipper写自动上下滚动的数据
重写ViewFlipper,为其添加动画
public class MyViewFlipper extends ViewFlipper {
private Context mContext;
//是否设置动画
private boolean isSetAnimDuration = false;
//设置数据展示时间
private int interval = 3000;
/**
* 动画时间
*/
private int animDuration = 300;
public MyViewFlipper(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs, 0);
}
private void init(Context context, AttributeSet attrs, int defStyleAttr) {
this.mContext = context;
setFlipInterval(interval);
Animation animIn = AnimationUtils.loadAnimation(mContext,
R.anim.anim_marquee_in);
if (isSetAnimDuration)
animIn.setDuration(animDuration);
setInAnimation(animIn);
Animation animOut = AnimationUtils.loadAnimation(mContext,
R.anim.anim_marquee_out);
if (isSetAnimDuration)
animOut.setDuration(animDuration);
setOutAnimation(animOut);
}
/**
* 设置循环滚动的View数组
*
* @param views
*/
public void setViews(List<View> views) {
if (views == null || views.size() == 0)
return;
removeAllViews();
for (int i = 0; i < views.size(); i++) {
addView(views.get(i));
}
if (views.size()>1) {
startFlipping();
}else {
stopFlipping();
}
}
}
数据进入动画
<translate
android:duration="1500"
android:fromYDelta="100%p"
android:toYDelta="0" >
</translate>
数据出去动画
<translate
android:duration="1500"
android:fromYDelta="0"
android:toYDelta="-100%p" >
</translate>
数据加载使用
ViewFlipper.setViews(views);