Android 中奖滚动效果
转化的效果git图看着好像有点卡顿,但实际还是很顺滑的~~
自定义AutoPollRecyclerView
public class AutoPollRecyclerView extends RecyclerView {private long TIME_AUTO_POLL = 16;AutoPollTask autoPollTask;private boolean running; //标示是否正在自动轮询private boolean canRun;//标示是否可以自动轮询,可在不需要的是否置falsepublic AutoPollRecyclerView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);autoPollTask = new AutoPollTask(this);}static class AutoPollTask implements Runnable {private final WeakReference<AutoPollRecyclerView> mReference;//使用弱引用持有外部类引用->防止内存泄漏public AutoPollTask(AutoPollRecyclerView reference) {this.mReference = new WeakReference<AutoPollRecyclerView>(reference);}@Overridepublic void run() {AutoPollRecyclerView recyclerView = mReference.get();if (recyclerView != null && recyclerView.running && recyclerView.canRun) {recyclerView.scrollBy(2, 2);recyclerView.postDelayed(recyclerView.autoPollTask, recyclerView.TIME_AUTO_POLL);}}}public void setTimeAutoPoll(long time) {this.TIME_AUTO_POLL = time;}//开启:如果正在运行,先停止->再开启public void start() {if (running)stop();canRun = true;running = true;postDelayed(autoPollTask, TIME_AUTO_POLL);}public void stop() {running = false;removeCallbacks(autoPollTask);}@Overridepublic boolean onTouchEvent(MotionEvent e) {switch (e.getAction()) {case MotionEvent.ACTION_DOWN:if (running)stop();break;case MotionEvent.ACTION_UP:case MotionEvent.ACTION_CANCEL:case MotionEvent.ACTION_OUTSIDE:if (canRun)start();break;}//return false,注释掉onTouchEvent()方法里面的stop和start方法,则列表自动滚动且不可触摸return super.onTouchEvent(e);}
}
还要结合AutoPollAdapter
public class AutoPollAdapter extends RecyclerView.Adapter<AutoPollAdapter.BaseViewHolder> {private final Context mContext;private final List<String> mData;public AutoPollAdapter(Context context, List<String> list) {this.mContext = context;this.mData = list;}@Overridepublic BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = LayoutInflater.from(mContext).inflate(R.layout.item_auto_list, parent, false);BaseViewHolder holder = new BaseViewHolder(view);return holder;}@Overridepublic void onBindViewHolder(BaseViewHolder holder, int position) {String datasBean = mData.get(position % mData.size());holder.userName.setText(datasBean);}@Overridepublic int getItemCount() {return Integer.MAX_VALUE;}class BaseViewHolder extends RecyclerView.ViewHolder {TextView userName;public BaseViewHolder(View itemView) {super(itemView);userName = itemView.findViewById(R.id.user_name);}}
}
使用时结合接口返回的arrayList<String> 类型的数据:
marqueeViewLack!!.setTimeAutoPoll(30)marqueeViewLack!!.setLayoutManager(LinearLayoutManager(getCurrentCon(),LinearLayoutManager.VERTICAL,false)) //LinearLayoutManager.HORIZONTALvar autoPollAdapter = AutoPollAdapter(getCurrentCon(), homBean.payment_list)marqueeViewLack!!.setAdapter(autoPollAdapter)marqueeViewLack!!.start()
在activity里使用时注意:
override fun onStart() {super.onStart()marqueeViewLack!!.start() }override fun onStop() {super.onStop()marqueeViewLack!!.stop() }
adapter里面的布局文件根据自己实际要展示的效果来写就好,我的item_auto_list:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:paddingLeft="14dp"android:paddingTop="11dp"android:paddingRight="14dp"android:paddingBottom="6dp"><TextViewandroid:id="@+id/user_name"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:textColor="@color/se_a8a1"android:textSize="10sp" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:background="@color/se_deda" />
</LinearLayout>
大体就是这样~
Android 中奖滚动效果相关推荐
- Android 歌词滚动效果(歌词逐个与逐渐变色)可换行
前言: 最近公司要求实现一个 讯飞语音阅读文字,文字根据阅读速度逐个变色的功能.先上个图看下效果. (由于工作非常紧张,所以就把测试的图贴过来了,兄弟们将就看) 直接上代码: ColorTrackV ...
- android 字体滚动效果,2018-02-05 android 左右字滚动效果(跑马灯效果),能直接拿来用的...
MarqueeView 俗名:可垂直跑.可水平跑的跑马灯 学名:可垂直翻.可水平翻的翻页公告 com.sunfusheng marqueeview 1.3.3 pom compile 'com.sun ...
- android中奖名单轮播,iOS模拟中奖名单循环滚动效果
本文实例为大家分享了iOS模拟中奖名单循环滚动效果的具体代码,供大家参考,具体内容如下 1.动态效果图: 2.思路: (1)控件:一个父View,依次添加两个tableVew,使其上下紧挨着,高度均等 ...
- Android 循环滚动控件ViewFlipper,可实现跑马灯或轮播图效果
ViewFlipper--Android循环滚动控件 1.效果如下: 2.实现方法 (1)创建进出动画 上下滚动动画 y_in.xml <?xml version="1.0" ...
- android数字滚动动画,Android超简单实现金钱滚动效果
目录 目录 效果展示 实现原理 利用ValueAnimator将数值从0一直增长到你所需要展示的数值,然后使用TextView将增长过程中的数值不断展示即可实现金钱的滚动效果. ValueAnimat ...
- android 开机动画 渐变,[Parallax Animation]实现知乎 Android 客户端启动页视差滚动效果...
前言 Parallax Scrolling (视差滚动),是一种常见的动画效果.视差一词来源于天文学,但在日常生活中也有它的身影.在疾驰的动车上看风景时,会发现越是离得近的,相对运动速度越快,而远处的 ...
- android开发文字滚动代码,android实现滚动文本效果
本文实例为大家分享了android实现滚动文本效果的具体代码,供大家参考,具体内容如下 效果图 实现方法 直接上代码 首先是一个自定义layout,继承自FrameLayout public clas ...
- 中奖人js滚动效果_jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可...
在很多场景中,我们需要使用到中奖信息播报,或者一些文本信息循环滚动播报,在结合实际的开发中,然后也百度查询了相关的知识点,现在送上jQuery实现文本滚动. 1:html代码文件 相关使用说明也在页面 ...
- android数字滚动动画,数字滚动效果 RollingText
RollingTextView 特性 使用简单,API与TextView类似,setText方法可带有上下滚动的动画 支持xml设置android:textSize/android:textColor ...
- android开发歌词滑动效果_android实现歌词自动滚动效果
最近在做Android 的MP3播放的项目,要实现歌词的自动滚动,以及同步显示. lyric的歌词解析主要用yoyoplayer里面的,显示部分参考了这里 ,这里只是模拟MP3歌词的滚动. 先上一下效 ...
最新文章
- access、trunk、hybrid
- 物料变式的订货型生产(3.0C:可库存的类型)(26)
- 1-Qt6在线安装图文步骤
- 关于exchange2003使用owa修改用户口令
- 业余爱好者linux_如何从业余爱好者变成专业开发人员
- 自动化如何帮助全球共抗疫情?
- ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
- jquery中animate()函数不能调用元素的display属性
- 高一信息技术 计算机配件的真伪辨别,高一信息技术组PPT.ppt
- 【UKIEPC2017:F题】Flipping Coins(抛硬币求正面朝上个数的期望----概率dp)
- 给互联网人的反侦查手册
- 系统学习语义分割文章推荐以及顺序
- 1、操作系统的定义和作用?
- 重走长征路---OI每周刷题记录——hzwer
- php识别名片,名片识别接口
- excel表格添加文字太长了,需要换行?
- java_vinson_04:String类浅识
- 基于ChatGPT实现微信聊天机器人
- systeminfo命令
- 【记录十九】JCR2.0 节点类型
热门文章
- android 光标的绘制,Android EditText(TextView)如何绘制闪烁的光标?
- ACL 2022 | PLATO-LTM:具有长期记忆机制的对话生成框架
- RewriteBase: only valid in per-directory config files 解答:
- 整个网站网页变黑白的效果
- ipv4和ipv6地址长度
- 多视图信息瓶颈表征学习
- 如何观看网页flash视频以及下载视频
- Python自动化完成tb喵币任务
- 【Python计量】RESET模型设定偏误检验
- 已设定选项 ‘readonly‘ (请加 ! 强制执行)