改变图像的背景颜色中选择的GridView [英] Change background colour of image on selection in GridView
本文介绍了改变图像的背景颜色中选择的GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建images.i的一个GridView我试图c.But上选择图像不发生变化来改变图像的背景色上选择在以下$ C $。
的GridView =(GridView控件)rootView.findViewById(R.id.gridView);
customGridAdapter =新GridViewAdapter(getActivity(),R.layout.row_grid,的getData());
gridView.setAdapter(customGridAdapter);
gridView.setOnItemClickListener(新OnItemClickListener(){
公共无效onItemClick(适配器视图<>母公司,视图V,
INT位置,长的id){
//Toast.makeText(TeamFragment.this,位置+#Selected
// Toast.LENGTH_SHORT).show();
数=位置;
gridView.setBackgroundColor(Color.argb(125,75,236,90));
/ * INT currentPic =位置;
意向意图=新的Intent();
intent.setType(图像/ *);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(意向,选择图片),1); * / } });
GridViewAdapter
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
查看排= convertView;
ViewHolder支架=无效; 如果(行== NULL){
LayoutInflater充气=((活动)上下文).getLayoutInflater();
行= inflater.inflate(layoutResourceId,父母,假);
持有人=新ViewHolder();
holder.imageTitle =(TextView中)row.findViewById(R.id.text);
holder.image =(ImageView的)row.findViewById(R.id.image);
row.setTag(保持器);
}其他{
支架=(ViewHolder)row.getTag();
} row.setBackgroundColor(Color.RED);
的ImageItem项= data.get(位置);
holder.imageTitle.setText(item.getTitle());
holder.image.setImageBitmap(item.getImage());
返回行;
}
解决方案
在里面你GridViewAdapter getView(...)方法,您可以设置ImageView的OnClickListener如下,
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
ViewHolder支架=无效; 如果(convertView == NULL){
LayoutInflater充气=((活动)上下文).getLayoutInflater();
convertView = inflater.inflate(layoutResourceId,父母,假);
持有人=新ViewHolder();
holder.imageTitle =(TextView中)convertView.findViewById(R.id.text);
holder.image =(ImageView的)convertView.findViewById(R.id.image);
convertView.setTag(保持器);
}其他{
支架=(ViewHolder)convertView.getTag();
} convertView.setBackgroundColor(Color.RED);
的ImageItem项= data.get(位置);
holder.imageTitle.setText(item.getTitle());
holder.image.setImageBitmap(item.getImage()); 最终视图行= convertView; holder.image.setOnClickListener(新View.OnClickListener(){ @覆盖
公共无效的onClick(查看为arg0){
// TODO自动生成方法存根
row.setBackgroundColor(Color.yourColor);
}
}); 返回行;
}
不要忘了声明变量行作为最后的,因此可以在匿名内部类View.OnclickListener访问。
I have created a gridView of images.i am trying to change background colour of image on selection in the following code.But no change occurs on selecting an image.
gridView = (GridView)rootView.findViewById(R.id.gridView);
customGridAdapter = new GridViewAdapter(getActivity(), R.layout.row_grid, getData());
gridView.setAdapter(customGridAdapter);
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
//Toast.makeText(TeamFragment.this, position + "#Selected",
// Toast.LENGTH_SHORT).show();
count=position;
gridView.setBackgroundColor(Color.argb(125,75,236,90));
/*int currentPic = position;
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);*/
}
});
GridViewAdapter
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.imageTitle = (TextView) row.findViewById(R.id.text);
holder.image = (ImageView) row.findViewById(R.id.image);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
row.setBackgroundColor(Color.RED);
ImageItem item = data.get(position);
holder.imageTitle.setText(item.getTitle());
holder.image.setImageBitmap(item.getImage());
return row;
}
解决方案
Inside getView(...) method in your GridViewAdapter, you can set OnClickListener for ImageView as follows,
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView== null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView= inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.imageTitle = (TextView) convertView.findViewById(R.id.text);
holder.image = (ImageView) convertView.findViewById(R.id.image);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
convertView.setBackgroundColor(Color.RED);
ImageItem item = data.get(position);
holder.imageTitle.setText(item.getTitle());
holder.image.setImageBitmap(item.getImage());
final View row = convertView;
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
row.setBackgroundColor(Color.yourColor);
}
});
return row;
}
Don't forget to declare variable row as final so it can be accessed in anonymous inner class View.OnclickListener.
这篇关于改变图像的背景颜色中选择的GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文