Xamarin - Galleria

Una raccolta è un tipo di visualizzazione utilizzato per mostrare gli elementi in un elenco scorrevole orizzontale. L'elemento selezionato viene quindi mostrato al centro. In questo esempio, creerai una galleria contenente immagini che possono scorrere orizzontalmente. Quando si fa clic su un'immagine, verrà visualizzato un numero per l'immagine selezionata.

Prima di tutto, crea un nuovo progetto e dagli un nome, ad esempio, Tutorial app galleria. Prima di iniziare a scrivere codice, incolla 7 immagini nel fileresource /drawable folder. Navigare versomain.axml sotto resources folder e una galleria tra i tag di layout lineare.

<?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 nuova classe chiamata ImageAdapter. Questa classe verrà utilizzata per legare le immagini alla galleria che abbiamo creato sopra.

Il primo passo è aggiungere una classe che contiene un contesto cont che usiamo per memorizzare i campi.

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

Successivamente, contiamo l'elenco di array che contiene la nostra immagine e restituisce la sua dimensione.

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

Nel passaggio successivo, otteniamo la posizione dell'articolo. Il codice seguente mostra come farlo.

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

Nel passaggio successivo creiamo un file imageview per gli articoli a cui fa riferimento l'adattatore.

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

Nella fase finale, creiamo un riferimento alle immagini che abbiamo aggiunto nel file resources.drawablecartella. Per fare ciò, creiamo un array per contenere la raccolta di immagini. Il codice seguente spiega come farlo.

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

Successivamente, andiamo a mainActivity.cs e inserire il codice seguente con il metodo 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(); 
}

Infine, crea ed esegui la tua applicazione per visualizzare l'output.