1

我正在开发一个 android 应用程序,在该应用程序中,我必须在用户单击的网格视图中展开特定图像。有什么办法可以做到。任何帮助将不胜感激。我使用了两种方法,但没有达到相同的效果
在此处输入图像描述 首先:在 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;
                }   
            });

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

4

2 回答 2

2

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

if(array[position].equals("1"))
{
        imageView.setLayoutParams(new LinearLayout.LayoutParams(80, 80, 1));    
}    
else
{
       // set image original property
}
于 2012-09-13T05:56:16.253 回答
0

将此代码放入您OnclickListenerimageview

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

intent.setDataAndType(Uri.parse("image path"), "image/*");  
startActivity(intent);  
于 2012-09-13T05:48:15.333 回答