Xamarin - Galería

Una galería es un tipo de vista que se utiliza para mostrar elementos en una lista desplazable horizontal. A continuación, el elemento seleccionado se muestra en el centro. En este ejemplo, va a crear una galería que contiene imágenes que se pueden desplazar horizontalmente. Cuando se hace clic en una imagen, se muestra un número para la imagen seleccionada.

En primer lugar, cree un nuevo proyecto y asígnele un nombre, por ejemplo, Tutorial de la aplicación de galería. Antes de comenzar a codificar, pegue 7 imágenes en elresource /drawable folder. Navegar amain.axml debajo resources folder y una galería entre las etiquetas de diseño lineal.

<?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>

Crea una nueva clase llamada ImageAdapter. Esta clase se utilizará para vincular las imágenes a la galería que creamos arriba.

El primer paso es agregar una clase que contenga un contexto cont que usamos para almacenar campos.

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

A continuación, contamos la lista de matrices que contiene nuestra imagen y devuelve su tamaño.

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

En el siguiente paso, obtenemos la posición del artículo. El siguiente código muestra cómo hacerlo.

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

En el siguiente paso, creamos un imageview para los elementos a los que hace referencia el adaptador.

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; 
}

En el paso final, creamos una referencia a las imágenes que agregamos en el resources.drawablecarpeta. Para hacer esto, creamos una matriz para contener la colección de imágenes. El siguiente código explica cómo hacerlo.

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

A continuación, vamos a mainActivity.cs e inserte el siguiente código bajo el método 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(); 
}

Finalmente, compile y ejecute su aplicación para ver el resultado.