安卓仿淘宝首页标题查看垂直滚动效果
本来打算把TextView垂直向上滚动,后来发现大神孙福生做的不错,后来不得不用多个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(Listviews) { if (views == null || views.size() == 0) return; removeAllViews(); for (int i = 0; i < views.size(); i++) { addView(views.get(i)); } startFlipping(); } }