改变图像的背景颜色中选择的GridView [英] Change background colour of image on selection in GridView

查看:109
本文介绍了改变图像的背景颜色中选择的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项= d​​ata.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项= d​​ata.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆