文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android仿淘宝首页头条View垂直滚动效果

2022-06-06 11:52

关注

之前本来是打算做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; 
 
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); 
 } 
  
 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的内容:


package com.dreamlive.upmarqueeviewdemo; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
import com.dreamlive.upmarqueeview.UPMarqueeView; 
import java.util.ArrayList; 
import java.util.List; 
 
public class MainActivity extends AppCompatActivity { 
 private UPMarqueeView upview1; 
 List<String> data = new ArrayList<>(); 
 List<View> views = new ArrayList<>(); 
 @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); 
 } 
  
 private void setView() { 
 for (int i = 0; i < data.size(); i = i + 2) { 
  //设置滚动的单个布局 
  LinearLayout moreView = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_view, null); 
  //初始化布局的控件 
  TextView tv1 = (TextView) moreView.findViewById(R.id.tv1); 
  TextView tv2 = (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 = new ArrayList<>(); 
 data.add("家人给2岁孩子喝这个,孩子智力倒退10岁!!!"); 
 data.add("iPhone8最感人变化成真,必须买买买买!!!!"); 
 data.add("简直是白菜价!日本玩家33万甩卖15万张游戏王卡"); 
 data.add("iPhone7价格曝光了!看完感觉我的腰子有点疼..."); 
 data.add("主人内疚逃命时没带够,回废墟狂挖30小时!"); 
// data.add("竟不是小米乐视!看水抢了骁龙821首发了!!!"); 
 } 
} 

github地址:https://github.com/dreamlivemeng/UpMarqueeTextView-master 欢迎star,fork,提pr,issues。

效果图:

您可能感兴趣的文章:Android控件ViewFlipper仿淘宝头条垂直滚动广告条Android中TextView实现垂直滚动和上下滚动效果Android自定义View实现仿1号店垂直滚动广告条代码Android TextView实现垂直滚动效果的方法Android仿即刻首页垂直滚动图,炫酷到底!Android实现Activity水平和垂直滚动条的方法android listview 水平滚动和垂直滚动的小例子android开发之横向滚动/竖向滚动的ListView(固定列头)android实现上下滚动的TextViewandroid TextView不用ScrollViewe也可以滚动的方法


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯