Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Gallery — это мини-приложение макета, используемое для отображения элементов в списке горизонтальной прокрутки и размещения текущего выделения в центре представления.
Внимание
Это мини-приложение было устарело в Android 4.1 (уровень API 16).
В этом руководстве вы создадите коллекцию фотографий, а затем отобразите всплывающее сообщение при каждом выборе элемента коллекции.
После установки макета Main.axml для представления Gallery содержимого он записывается из макета с FindViewByIdпомощью .
Токен Adapter Затем свойство используется для задания пользовательского адаптера ( ImageAdapter) в качестве источника для всех элементов, отображаемых в dallery. Он ImageAdapter создается на следующем шаге.
Чтобы сделать что-то, когда элемент в коллекции щелкается, анонимный делегат подписан на СобытиеItemClick . Отображается Toast отображает позицию индекса (от нуля) выбранного элемента (в реальном мире позиция может использоваться для получения полного размера изображения для какой-то другой задачи).
Во-первых, есть несколько переменных-членов, включая массив идентификаторов, ссылающихся на изображения, сохраненные в каталоге ресурсов для рисования (resources/drawable).
Далее — конструктор класса, где Context для экземпляра ImageAdapter определяется и сохраняется в локальном поле.
Далее это реализует некоторые необходимые методы, унаследованные от BaseAdapter.
Конструктор и Count свойство является самообъяснительным. Обычно GetItem(int) должен возвращать фактический объект в указанной позиции в адаптере, но он игнорируется для этого примера. Также GetItemId(int) должен возвращать идентификатор строки элемента, но здесь он не нужен.
Метод выполняет работу для применения изображения к объекту ImageView это будет внедрено в Gallery В этом методе член Context используется для создания нового ImageView.
Токен ImageView подготавливается путем применения изображения из локального массива рисуемых ресурсов, задание Gallery.LayoutParams высота и ширина изображения, установка шкалы в соответствии с ImageView измерения, а затем, наконец, задайте фон для использования атрибута с возможностью стиля, полученного в конструкторе.
См ImageView.ScaleType . другие параметры масштабирования изображений.
Пошаговое руководство
Запустите новый проект с именем HelloGallery.
Найдите некоторые фотографии, которые вы хотите использовать, или скачайте эти примеры изображений. Добавьте файлы изображений в каталог ресурсов или рисования проекта. В окне "Свойства" задайте действие сборки для каждого из них в AndroidResource.
Откройте resources/Layout/Main.axml и вставьте следующее:
<?xml version="1.0" encoding="utf-8"?>
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
Откройте MainActivity.cs и вставьте следующий код для OnCreate() Метод:
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
Gallery gallery = (Gallery) FindViewById<Gallery>(Resource.Id.gallery);
gallery.Adapter = new ImageAdapter (this);
gallery.ItemClick += delegate (object sender, Android.Widget.AdapterView.ItemClickEventArgs args) {
Toast.MakeText (this, args.Position.ToString (), ToastLength.Short).Show ();
};
}
Создайте новый класс, называемый ImageAdapter подклассами BaseAdapter:
public class ImageAdapter : BaseAdapter
{
Context context;
public ImageAdapter (Context c)
{
context = c;
}
public override int Count { get { return thumbIds.Length; } }
public override Java.Lang.Object GetItem (int position)
{
return null;
}
public override long GetItemId (int position)
{
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public override View GetView (int position, View convertView, ViewGroup parent)
{
ImageView i = new ImageView (context);
i.SetImageResource (thumbIds[position]);
i.LayoutParameters = new Gallery.LayoutParams (150, 100);
i.SetScaleType (ImageView.ScaleType.FitXy);
return i;
}
// references to our images
int[] thumbIds = {
Resource.Drawable.sample_1,
Resource.Drawable.sample_2,
Resource.Drawable.sample_3,
Resource.Drawable.sample_4,
Resource.Drawable.sample_5,
Resource.Drawable.sample_6,
Resource.Drawable.sample_7
};
}
Запустите приложение. Он должен выглядеть следующим образом:

Ссылки
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
