如何在用户点击的android中更改GridView中的图像?

时间:2012-09-13 05:16:34

标签: android android-gridview

我正在开发一个Android应用程序,其中我必须在用户点击的网格视图中展开特定图像。有任何方法可以做到。任何帮助将不胜感激。我使用了两种方法但没有实现同样
enter image description here 第一:用于getview()方法:

    if(array[position]!=null)
                if(array[position].equals("1")){
                 imageView.setLayoutParams(new LinearLayout.LayoutParams(80, 80, 1));                   

                }
                imageView.setOnTouchListener(new View.OnTouchListener() {

                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        switch (event.getAction()) {
                        case MotionEvent.ACTION_UP:
                        final int posit = gridview.getPositionForView((View)v.getParent());
                        array[posit]="1";
                        ((BaseAdapter)gridview.getAdapter()).notifyDataSetChanged();
                        break;

                        }
                        return true;
                    }   
                });  

第二

 imageView.setOnTouchListener(new View.OnTouchListener() {

                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction()) {
                         case MotionEvent.ACTION_UP:
                         v.setLayoutParams(new LinearLayout.LayoutParams(80, 80, 1));

                         ((BaseAdapter)gridview.getAdapter()).notifyDataSetChanged();
                         break;
                    }
                    return true;
                }   
            });

但是这两种方法没有显示正确的结果,它正在随机扩展图像我应该怎么做。任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:2)

编辑:对于该问题,您必须跟踪已更改的视图,例如,当您更改视图的属性时,采用布尔数组,对于数组中的该位置保持true。滚动视图时,无论哪个数组位置为真,对于它们只有你设置放大属性,设置默认属性,如下所示。

if(array[position].equals("1"))
{
        imageView.setLayoutParams(new LinearLayout.LayoutParams(80, 80, 1));    
}    
else
{
       // set image original property
}

答案 1 :(得分:0)

将此代码放入OnclickListener

imageview
Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  

intent.setDataAndType(Uri.parse("image path"), "image/*");  
startActivity(intent);