全屏 RecyclerView 图像滑块

Posted

技术标签:

【中文标题】全屏 RecyclerView 图像滑块【英文标题】:RecyclerView image slider with full screen 【发布时间】:2018-01-14 13:45:28 【问题描述】:

我的 recyclerview 列表项包含三个图像和其他组件。

  <LinearLayout
            android:id="@+id/image_view_items"

                android:layout_
                android:layout_
                android:orientation="horizontal"
                android:layout_marginTop="3dp"
                android:padding="5dp"
                android:weightSum="3"
                android:visibility="visible"
                android:minHeight="100dp">

                <ImageView
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:scaleType="fitXY"
                    android:layout_gravity="center"
                    android:src="@drawable/car02"
                    android:padding="2dp"
                    />

                <ImageView
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:layout_gravity="center"
                    android:scaleType="fitXY"
                    android:src="@drawable/car01"
                    android:padding="2dp"
                    />

                <ImageView
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:layout_gravity="center"
                    android:scaleType="fitXY"
                    android:src="@drawable/car03"
                    android:padding="2dp"
                    />

            </LinearLayout>

我的每个列表项都有这三个水平图像。

在回收站 onBindViewHolder 中。我在下面添加了几行

 @BindView(R.id.image_view_items)
 LinearLayout imageHolder;

 viewholder.imageHolder.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                 // open activity of page viewer
                //Log.i("Item", "Clicked");
            
        );


public class ImagePagerAdapter extends PagerAdapter

    private int[] images = R.drawable.car01, R.drawable.car02, R.drawable.car03;
    Context mContext;
    LayoutInflater mLayoutInflater;

    public ImagePagerAdapter() 
        super();
    

....

当我单击列表项上的图像时,图像应该会弹出到全屏并且应该能够滑动三个图像,并且当我拖动全屏视图时它应该关闭。 (就像帖子图片上的 facebook 图片全屏滑块视图)

如何将特定的列表项图像传递给活动? 图片加载后。我需要如何传递图像引用以快速加载?

谢谢。

【问题讨论】:

我认为您应该使用 viewpager 调用 Activity。并将 transitionAnimation 添加到您的 imageView。 你得到了你需要的东西吗? 【参考方案1】:

RecyclerView适配器onBindViewHolder()

在您为行设置图像的位置,只需创建一个 ArrayList 并在该 arrayList 上添加三个图像。它会在按位置设置每一行中的图像时添加图像并将arrayList 传递给您的@ 987654326@

并将Listner设置在onBindViewHolder():

  holder.itemView.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
           //call Viewpager here
        
    );

ViewPager 参考 :View translation in sliding a ViewPager

【讨论】:

保持三个图像原样并通过 onclick 的 java 代码创建 ViewPager ?我需要删除三个图像并在线性布局中添加 viewpager 吗? 您只需要添加,当您返回并再次单击新行时会自动获取图像的新值。 如何在arraylist中添加图像并按每一行区分并传递给查看器?任何示例? github.com/MrWangChong/DragPhotoView 显示在视图中添加图像视图并传递给活动。我认为这是一个干净的例子。

以上是关于全屏 RecyclerView 图像滑块的主要内容,如果未能解决你的问题,请参考以下文章

在全屏android中使用recyclerview幻灯片图像

Android Recycer 流式布局

像Instagram这样的图像滑块?

RecyclerView 挤压子项宽度

带有 img 标签的全屏图像

如何在 RecyclerView 中实现 StartActivityForResult