【发布时间】:2015-08-21 01:13:37
【问题描述】:
我有网格视图,其中显示了一些使用毕加索库下载的图片。我的目标是:当我点击一些图片时,其他的应该是灰度的。但我不知道如何实现这一点。
我的 GridViewAdapter:
public class GridViewAvatarAdapter extends ArrayAdapter<AvatarItem> {
private Context mContext;
private int layoutResourceId;
private ArrayList<AvatarItem> mGridData = new ArrayList<AvatarItem>();
public GridViewAvatarAdapter(Context mContext, int layoutResourceId, ArrayList<AvatarItem> mGridData) {
super(mContext, layoutResourceId, mGridData);
this.layoutResourceId = layoutResourceId;
this.mContext = mContext;
this.mGridData = mGridData;
}
public void setGridData(ArrayList<AvatarItem> mGridData) {
this.mGridData = mGridData;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
final ViewHolder holder;
if (row == null) {
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.imageView = (ImageView) row.findViewById(R.id.grid_item_avatar_image);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
AvatarItem item = mGridData.get(position);
Picasso.with(mContext).load(item.getAvatarURL()).transform(new CircleTransform()).into(holder.imageView);
return row;
}
static class ViewHolder {
ImageView imageView;
}
}
我知道我应该使用:
mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
//Get item at position
AvatarItem item = (AvatarItem) parent.getItemAtPosition(position);
}
});
在我的 GridView 片段中。我也知道如何使 imageView 灰度化,但我不知道在 mGridView.setOnItemClickListener() 中更改 ImageView(在 gridView 片段中)
【问题讨论】:
标签: android gridview onclicklistener grayscale