Votre adaptateur a besoin de travail. Dans votre méthode getView(), vous supposez que les arguments sont un URI. EN fait, les arguments sont :
public View getView(final int position, View convertView, final ViewGroup parent) {
...
}
Le premier argument est la position de l'élément dans la grille que vous êtes sur le point de rendre. Le 2ème est le View - qui peut être recyclé. Et le 3ème est le parent de la vue. Vous essayez de prendre la position, un entier simple, et de l'utiliser comme URI
Ce que vous devriez faire dans votre getView est d'extraire l'image de votre base de données qui correspond à la "position" ème élément
Voir ce lien ici pour plus d'informations sur le développement de chargeurs pour vos adaptateurs