Android 如何在ImageView将颜色更改为蓝色高亮的GridView中实现多项目选择?

Android 如何在ImageView将颜色更改为蓝色高亮的GridView中实现多项目选择?,android,gridview,highlight,multiple-select,multipleselection,Android,Gridview,Highlight,Multiple Select,Multipleselection,我想通过ImageView将颜色更改为蓝色,在GridView中实现多项目选择。 我的意思是我有一个GridView和ImageView从url加载用户图像。 在myGridView中,我想突出显示多选图像(es蓝色),如图所示 我的网格视图: <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="wrap_content

我想通过
ImageView
将颜色更改为蓝色,在
GridView
中实现多项目选择。 我的意思是我有一个
GridView
ImageView
从url加载用户图像。 在my
GridView
中,我想突出显示多选图像(es蓝色),如图所示

我的网格视图:

   <GridView
    android:id="@+id/gridview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:numColumns="3"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical"
    android:listSelector="@null" />

网格视图中的Imem:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/userLikesimg"
  android:layout_width="100dp"
  android:layout_height="100dp"
  android:background="@color/blu_facebook_transparent"
  android:scaleType="centerCrop" />

您可以创建一个
OnItemClickListener
,将项上的标志从0更改为1或从true更改为false

boolean isSelected = 0;
作为标准值

OnItemClickListener
中,您可以将其更改为

boolean isSelected=1;

然后,在他们完成活动后,您可以解析gridview/listview中的对象,查看哪个对象具有
isSelected=1
,并在此基础上执行任何活动。

我在适配器中解决了UnisingLayerDrawable

numElement为int,并定义所选的num元素

selectedElements是选择了位置元素的布尔数组

public boolean[] selectedElements= new boolean[n];
    private int selectedElements= m;

 public View getView(final int position, View amico, ViewGroup parent) {
      ...
      viewHolder.userImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (selectedElements[position] == false) {
                    if (numElementi == 0) {
                        Toast.makeText(mContext, R.string.error, Toast.LENGTH_LONG).show();
                    } else {
                        BitmapDrawable bd = new BitmapDrawable(mContext.getResources(), viewHolder.userImage.getDrawingCache())userUrl;
                        //you can check if the bd is null (if it is null I download image again -it is in cache- and I add blue trasparency like bellow                                 
                        //R.drawable.blue is image with trasparency
                        LayerDrawable d = new LayerDrawable(new Drawable[] { bd, mContext.getResources().getDrawable(R.drawable.blue) });
                        viewHolder.userImage.setImageDrawable(d);
                        selectedElements[position] = true;
                        numElementi--;
                    }

                } else {
                    String imgUserurl = userUrl;
                    Picasso.with(mContext).load(imgUserurl).placeholder(R.drawable.ll_friend_placeholder).into(viewHolder.userImage);
                    viewHolder.userImage.setDrawingCacheEnabled(true);
                    selectedElements[position] = false;
                    numElementi++;
                }
            }
        });
      ...
  }

  public boolean[] getSelectedElements()
  {
     return selectedElements;
  }
在我的活动或片段中:

    boolean[] selectedElement = adapter.getSelectedElements();
(我需要所选元素的位置)