Xamarin - Galerie

Une galerie est un type d'affichage utilisé pour afficher des éléments dans une liste déroulante horizontale. L'élément sélectionné est alors affiché au centre. Dans cet exemple, vous allez créer une galerie contenant des images qui peuvent défiler horizontalement. Une image lorsque vous cliquez dessus affichera un numéro pour l'image sélectionnée.

Tout d'abord, créez un nouveau projet et donnez-lui un nom, par exemple, Tutoriel de l'application Galerie. Avant de commencer à coder, collez 7 images dans leresource /drawable folder. Aller versmain.axml en dessous de resources folder et une galerie entre les balises de disposition linéaire.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
   android:orientation="vertical" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:background="#d3d3d3"> 
   <Gallery 
      android:id="@+id/gallery" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:padding="10dp" /> 
</LinearLayout>

Créez une nouvelle classe appelée ImageAdapter. Cette classe va être utilisée pour lier les images à la galerie que nous avons créée ci-dessus.

La première étape consiste à ajouter une classe qui contient un contexte cont que nous utilisons pour stocker les champs.

public class ImageAdapter : BaseAdapter { 
   Context cont; 
   public ImageAdapter(Context ct) { 
      cont = ct; 
   } 
}

Ensuite, nous comptons la liste des tableaux qui contient notre image et renvoie sa taille.

public override int Count {  
   get {  
      return imageArraylist.Length;  
   }  
}

Dans l'étape suivante, nous obtenons la position de l'élément. Le code suivant montre comment procéder.

public override Java.Lang.Object GetItem(int position) { 
   return null; 
}  
public override long GetItemId(int position) { 
   return 0; 
}

Dans l'étape suivante, nous créons un imageview pour les éléments référencés par l'adaptateur.

public override View GetView(int position,View convertView, ViewGroup parent) { 
   ImageView img = new ImageView(cont); 
   img.SetImageResource(imageArraylist[position]); 
   img.SetScaleType(ImageView.ScaleType.FitXy); 
   img.LayoutParameters = new Gallery.LayoutParams(200, 100); 
   return img; 
}

Dans la dernière étape, nous créons une référence aux images que nous avons ajoutées dans le resources.drawabledossier. Pour ce faire, nous créons un tableau pour contenir la collection d'images. Le code suivant explique comment procéder.

int[] imageArraylist = { 
   Resource.Drawable.img1, 
   Resource.Drawable.img2, 
   Resource.Drawable.img3, 
   Resource.Drawable.img4, 
   Resource.Drawable.img5,
   Resource.Drawable.img6, 
  }; 
}

Ensuite, nous allons à mainActivity.cs et insérez le code suivant sous la méthode OnCreate ().

Gallery myGallery = (Gallery)FindViewById<Gallery>(Resource.Id.gallery); 
myGallery.Adapter = new ImageAdapter(this); 
myGallery.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs args) { 
   Toast.MakeText(this, 
      args.Position.ToString(), ToastLength.Short).Show(); 
}

Enfin, créez et exécutez votre application pour afficher la sortie.