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加载用户图像。
在myGridView
中,我想突出显示多选图像(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();
(我需要所选元素的位置)