如何滑动将图像放入ImageView

时间:2019-12-08 15:59:12

标签: java android

我的屏幕上有一些视图,其中包含3个ImageView。 我有另一个包含30个图标的视图(RecyclerView)。 我想要当我单击RV中的某个图标时,将其与第三个ImageView的3 ImageView添加到容器中。 如果我再次从RV单击其他图标,并且先前单击的图标已使用ImageView处的index 0,则该图标将移至索引1,新的图标将添加至索引0

我现在有一个代码: 现在,它总是将图标添加到index 0中。

XML”:

<LinearLayout
            android:layout_width="match_parent"
            android:gravity="center"
            android:orientation="horizontal"
            android:layout_height="match_parent">


            <ImageView
                android:id="@+id/historyContainer1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>
            <ImageView
                android:id="@+id/historyContainer2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>
            <ImageView
                android:id="@+id/historyContainer3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>
        </LinearLayout>

包含图像的片段:

private ArrayList<ImageView> historyItemsPH = new ArrayList<>();


historyItemsPH.add(mHistoryContainer1);
historyItemsPH.add(mHistoryContainer2);
historyItemsPH.add(mHistoryContainer3);

mLightsAdapter.setOnLightImageTouchListener(new LightsAdapter.OnLightImageTouchListener() {
            @Override
            public void onLightImageTouch(final int position, MotionEvent event, LightsAdapter.LightsViewHolder holder) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    MainActivity mainActivity = (MainActivity) getActivity();
                    mainActivity.removeSortFragment();
                }
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    mEmptyHistoryTXT.setVisibility(View.GONE);

                    Glide.with(getContext())
                            .load(mLightsArray.get(position).getLampImageUrl())
                            .override(150)
                            .into(historyItemsPH.get(0));
                }
            }
        });

1 个答案:

答案 0 :(得分:0)

这将每次添加到下一个,就像您想要添加更多逻辑一样

int i = 0;
private ArrayList<ImageView> historyItemsPH = new ArrayList<>();


historyItemsPH.add(mHistoryContainer1);
historyItemsPH.add(mHistoryContainer2);
historyItemsPH.add(mHistoryContainer3);

mLightsAdapter.setOnLightImageTouchListener(new LightsAdapter.OnLightImageTouchListener() {
            @Override
            public void onLightImageTouch(final int position, MotionEvent event, LightsAdapter.LightsViewHolder holder) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    MainActivity mainActivity = (MainActivity) getActivity();
                    mainActivity.removeSortFragment();
                }
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    mEmptyHistoryTXT.setVisibility(View.GONE);

                    Glide.with(getContext())
                            .load(mLightsArray.get(position).getLampImageUrl())
                            .override(150)
                            .into(historyItemsPH.get(i));
                    i++;
                    if (i==3){
                       i = 0;
                    }
                }
            }
        });