recycleview 自动循环滚动_Android使用Recyclerview实现图片水平自动循环滚动效果

简介:

本篇博客主要介绍的是如何使用RecyclerView实现图片水平方向自动循环(跑马灯效果)

效果图:

思路:

1.准备m张图片

1.使用Recyclerview实现,返回无数个(实际Interge.MAXVALUE)item,第n个item显示第n%m张图片

3.使用recyclerview.scrollBy  每个一段时间水平滚动一段距离

4.通过layoutManager.findFirstVisibleItemPosition()获取当前显示的第一个View是第几个item,上面的ImageView显示对应de图片

实现代码:

XML文件

1.activity布局文件activity_recy.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="300dp"

android:layout_height="350dp"

android:layout_gravity="center_horizontal"

android:id="@+id/img"

android:src="@drawable/p5"

android:scaleType="fitXY"

/>

android:layout_width="match_parent"

android:layout_height="150dp"

android:layout_marginTop="10dp"

android:id="@+id/recyclerview"

>

2.适配器布局item_horizon.xml

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现RecyclerView的垂直循环滚动,可以使用LinearLayoutManager和自定义RecyclerView.Adapter。具体步骤如下: 1. 在布局文件中添加RecyclerView控件,并设置LinearLayoutManager为其布局管理器: ``` <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" android:paddingTop="16dp" android:paddingBottom="16dp" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:orientation="vertical" /> ``` 2. 创建自定义的RecyclerView.Adapter,这里假设数据源为List<String>,并实现以下两个方法: ``` public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<String> mData; public MyAdapter(List<String> data) { mData = data; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { String text = mData.get(position % mData.size()); holder.textView.setText(text); } @Override public int getItemCount() { return Integer.MAX_VALUE; } static class ViewHolder extends RecyclerView.ViewHolder { TextView textView; ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.textView); } } } ``` 其中,onCreateViewHolder方法用于创建ViewHolder实例,onBindViewHolder方法用于设置ViewHolder中的数据,getItemCount方法返回一个非常大的数值,以保证RecyclerView可以无限滚动。 3. 在Activity或Fragment中设置RecyclerView的Adapter: ``` List<String> data = new ArrayList<>(); data.add("item1"); data.add("item2"); data.add("item3"); // ... MyAdapter adapter = new MyAdapter(data); recyclerView.setAdapter(adapter); ``` 这样就可以实现RecyclerView的垂直循环滚动了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值