Android仿淘宝首页头条View垂直滚动效果
作者:搬运工小孟
这篇文章主要为大家详细介绍了Android仿淘宝首页头条View垂直滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
之前本来是打算做TextView垂直向上滚动的,后来发现一位大神做得很好,https://github.com/sfsheng0322/MarqueeView 孙福生大神,然后自己要用到多个View向上滚动,也就是类似淘宝首页头条的那种滚动,所以就按照那个思路想了系啊,可以把View拿来滚动,这样可以自己随意的修改View里面的内容,还比较简单一些。所以这个整个思路就是把View就行循环滚动。
看一下循环滚动View的内容咋写的吧,非常简单。
package com.dreamlive.upmarqueeview;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
import java.util.List;
/**
* 仿淘宝首页的 淘宝头条滚动的自定义View
*
* Created by dreamlive on 2016/7/20.
*/
public class UPMarqueeView extends ViewFlipper {
private Context mContext;
private boolean isSetAnimDuration = false;
private int interval = 2000;
/**
* 动画时间
*/
private int animDuration = 500;
public UPMarqueeView(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));
}
startFlipping();
}
}MainActivity的内容:
github地址:https://github.com/dreamlivemeng/UpMarqueeTextView-master 欢迎star,fork,提pr,issues。
效果图:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
