Gridview shuttering when scrolling
Easy things


auto-generated comments


@Override
public int getCount() {
    // TODO Auto-generated method stub
    return data.size();
}



The method is not auto-generated any more, remove the comment. (this happens in a few places).
brace-placement

In Java, the opening brace { goes at the end of the line, not the start of a new line. Code like this:


    }
    catch(Exception e)
    {
        e.printStackTrace();
    }



should look like:

} catch(Exception e) {
    e.printStackTrace();
}



Hard Stuff

This code is likely your problem:


holder.mTitleView.setText(ITEM.get("name"));
Picasso.with(activity).load(ITEM.get("image"))
       .placeholder(R.drawable.icon).resize(150, 150)
       .error(R.drawable.icon).into(holder.imageView1);
System.gc();



There are two things here.

Firstly, System.gc() in any code that is not directly related to the system itself, is almost always a bug. There should never be a need for this. Let the system look after itself. It really does not need your help.

The second item is that it may be taking picasso a long time to load the Images. If you are scrolling to unseen areas of the system then the code may need to be calling the getView() method a lot. You need this method to be fast.

Convert the Picasso line to be an AsyncTask, and let it populate the imageView in the background. That will make populating the views a lot faster