Галерея — это тип представления, который используется для отображения элементов в горизонтальном прокручиваемом списке. Выбранный элемент затем отображается в центре. В этом примере вы собираетесь создать галерею, содержащую изображения, которые можно прокручивать по горизонтали. Изображение при нажатии будет отображать номер для выбранного изображения.
Прежде всего, создайте новый проект и дайте ему имя, например, Gallery App Tutorial. Перед тем, как начать кодировать, вставьте 7 изображений в папку ресурсов / рисования . Перейдите к файлу main.axml в папке ресурсов и галерее между тегами линейного макета.
<?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>
Создайте новый класс с именем ImageAdapter . Этот класс будет использоваться для привязки изображений к галерее, которую мы создали выше.
Первым шагом является добавление класса, который содержит контекст, который мы используем для хранения полей.
public class ImageAdapter : BaseAdapter { Context cont; public ImageAdapter(Context ct) { cont = ct; } }
Далее мы подсчитываем список массивов, который содержит наше изображение и возвращает его размер.
public override int Count { get { return imageArraylist.Length; } }
На следующем шаге мы получаем позицию элемента. Следующий код показывает, как это сделать.
public override Java.Lang.Object GetItem(int position) { return null; } public override long GetItemId(int position) { return 0; }
На следующем шаге мы создадим изображение для элементов, на которые ссылается адаптер.
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; }
На последнем этапе мы создаем ссылку на изображения, которые мы добавили в папку resources.drawable . Для этого мы создаем массив для хранения коллекции изображений. Следующий код объясняет, как это сделать.
int[] imageArraylist = { Resource.Drawable.img1, Resource.Drawable.img2, Resource.Drawable.img3, Resource.Drawable.img4, Resource.Drawable.img5, Resource.Drawable.img6, }; }
Далее мы идем в mainActivity.cs и вставляем следующий код в метод 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(); }
Наконец, соберите и запустите ваше приложение для просмотра результатов.