Xamarin - Galeria
Uma Galeria é um tipo de visualização usado para mostrar itens em uma lista rolável horizontal. O item selecionado é então mostrado no centro. Neste exemplo, você criará uma galeria contendo imagens que podem ser roladas horizontalmente. Uma imagem ao ser clicada exibirá um número para a imagem selecionada.
Em primeiro lugar, crie um novo projeto e dê um nome a ele, por exemplo, Gallery App Tutorial. Antes de começar a codificar, cole 7 imagens noresource /drawable folder. Navegar paramain.axml debaixo resources folder e uma galeria entre as tags de layout linear.
<?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>
Crie uma nova classe chamada ImageAdapter. Esta classe será usada para vincular as imagens à galeria que criamos acima.
A primeira etapa é adicionar uma classe que contém um contexto cont que usamos para armazenar campos.
public class ImageAdapter : BaseAdapter {
Context cont;
public ImageAdapter(Context ct) {
cont = ct;
}
}
Em seguida, contamos a lista de array que contém nossa imagem e retorna seu tamanho.
public override int Count {
get {
return imageArraylist.Length;
}
}
Na próxima etapa, obtemos a posição do item. O código a seguir mostra como fazer isso.
public override Java.Lang.Object GetItem(int position) {
return null;
}
public override long GetItemId(int position) {
return 0;
}
Na próxima etapa, criamos um imageview para os itens referenciados pelo 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;
}
Na etapa final, criamos uma referência para as imagens que adicionamos no resources.drawablepasta. Para fazer isso, criamos um array para conter a coleção de imagens. O código a seguir explica como fazer isso.
int[] imageArraylist = {
Resource.Drawable.img1,
Resource.Drawable.img2,
Resource.Drawable.img3,
Resource.Drawable.img4,
Resource.Drawable.img5,
Resource.Drawable.img6,
};
}
Em seguida, vamos para mainActivity.cs e insira o código a seguir no 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();
}
Por fim, crie e execute seu aplicativo para visualizar a saída.