美文网首页安卓开发相关
高仿淘宝垂直翻页公告

高仿淘宝垂直翻页公告

作者: 我很帅教练 | 来源:发表于2016-12-03 17:34 被阅读0次

    大神github地址:https://github.com/sfsheng0322/MarqueeView

    https://github.com/dreamlivemeng/UpMarqueeTextView-master


    代码

    /**

    * 仿淘宝首页的 淘宝头条滚动的自定义View

    *

    * Created by dreamlive on 2016/7/20.

    */

    public class UPMarqueeView extends ViewFlipper {

    private Context mContext;

    private booleanisSetAnimDuration=false;

    private intinterval=2000;

    /**

    * 动画时间

    */

    private intanimDuration=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);

    AnimationanimIn=AnimationUtils.loadAnimation(mContext, R.anim.anim_marquee_in);

    if (isSetAnimDuration) animIn.setDuration(animDuration);

    setInAnimation(animIn);

    AnimationanimOut=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 (inti=0; i

    addView(views.get(i));

    }

    startFlipping();

    }

    }

    MainActivity的内容:

    /**

    * 仿淘宝首页的 淘宝头条滚动的自定义View

    * Created by dreamlive on 2016/7/20.

    */

    public class MainActivity extends AppCompatActivity {

    private UPMarqueeView upview1;

    Listdata=newArrayList<>();

    Listviews=newArrayList<>();

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    initParam();

    initdata();

    initView();

    }

    /**

    * 实例化控件

    */

    private void initParam() {

    upview1= (UPMarqueeView) findViewById(R.id.upview1);

    }

    /**

    * 初始化界面程序

    */

    private void initView() {

    setView();

    upview1.setViews(views);

    }

    /**

    * 初始化需要循环的View

    * 为了灵活的使用滚动的View,所以把滚动的内容让用户自定义

    * 假如滚动的是三条或者一条,或者是其他,只需要把对应的布局,和这个方法稍微改改就可以了,

    */

    private void setView() {

    for (inti=0; i

    //设置滚动的单个布局

    LinearLayoutmoreView= (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_view, null);

    //初始化布局的控件

    TextViewtv1= (TextView) moreView.findViewById(R.id.tv1);

    TextViewtv2= (TextView) moreView.findViewById(R.id.tv2);

    //进行对控件赋值

    tv1.setText(data.get(i).toString());

    if (data.size()>i + 1) {

    //因为淘宝那儿是两条数据,但是当数据是奇数时就不需要赋值第二个,所以加了一个判断,还应该把第二个布局给隐藏掉

    tv2.setText(data.get(i + 1).toString());

    }else {

    moreView.findViewById(R.id.rl2).setVisibility(View.GONE);

    }

    //添加到循环滚动数组里面去

    views.add(moreView);

    }

    }

    /**

    * 初始化数据

    */

    private void initdata() {

    data=newArrayList<>();

    data.add("家人给2岁孩子喝这个,孩子智力倒退10岁!!!");

    data.add("iPhone8最感人变化成真,必须买买买买!!!!");

    data.add("简直是白菜价!日本玩家33万甩卖15万张游戏王卡");

    data.add("iPhone7价格曝光了!看完感觉我的腰子有点疼...");

    data.add("主人内疚逃命时没带够,回废墟狂挖30小时!");

    //        data.add("竟不是小米乐视!看水抢了骁龙821首发了!!!");

    }

    }

    相关文章

      网友评论

        本文标题:高仿淘宝垂直翻页公告

        本文链接:https://www.haomeiwen.com/subject/yvecmttx.html