Kontrol Galeri Xamarin.Android
Gallery
adalah widget tata letak yang digunakan untuk menampilkan item dalam daftar gulir horizontal dan memposisikan pilihan saat ini di tengah tampilan.
Penting
Widget ini tidak digunakan lagi di Android 4.1 (API level 16).
Dalam tutorial ini, Anda akan membuat galeri foto lalu menampilkan pesan toast setiap kali item galeri dipilih.
Setelah tata Main.axml
letak diatur untuk tampilan konten, Gallery
diambil dari tata letak dengan FindViewById
.
Tje Adapter
properti kemudian digunakan untuk mengatur adaptor kustom ( ImageAdapter
) sebagai sumber untuk semua item yang akan ditampilkan di dallery. ImageAdapter
dibuat di langkah berikutnya.
Untuk melakukan sesuatu saat item di galeri diklik, delegasi anonim berlangganan ItemClick
Acara. Ini menunjukkan Toast
yang menampilkan posisi indeks (berbasis nol) dari item yang dipilih (dalam skenario dunia nyata, posisi dapat digunakan untuk mendapatkan gambar berukuran penuh untuk beberapa tugas lain).
Pertama, ada beberapa variabel anggota, termasuk array ID yang mereferensikan gambar yang disimpan dalam direktori sumber daya yang dapat digambar (Sumber Daya/dapat digambar).
Selanjutnya adalah konstruktor kelas, di mana Context
ImageAdapter
untuk instans ditentukan dan disimpan ke bidang lokal.
Selanjutnya, ini menerapkan beberapa metode yang diperlukan yang diwariskan dari BaseAdapter
.
Konstruktor dan Count
properti adalah penjelasan mandiri. Biasanya GetItem(int)
harus mengembalikan objek aktual pada posisi yang ditentukan dalam adaptor, tetapi diabaikan untuk contoh ini. Juga GetItemId(int)
harus mengembalikan id baris item, tetapi tidak diperlukan di sini.
Metode melakukan pekerjaan untuk menerapkan gambar ke ImageView
yang akan disematkan dalam Gallery
Dalam metode ini, anggota Context
digunakan untuk membuat baru ImageView
.
Tje ImageView
disiapkan dengan menerapkan gambar dari array lokal sumber daya yang dapat digambar, mengatur Gallery.LayoutParams
tinggi dan lebar untuk gambar, mengatur skala agar pas ImageView
dimensi, lalu akhirnya mengatur latar belakang untuk menggunakan atribut bergaya yang diperoleh di konstruktor.
Lihat ImageView.ScaleType
untuk opsi penskalaan gambar lainnya.
Panduan
Mulai proyek baru bernama HelloGallery.
Temukan beberapa foto yang ingin Anda gunakan, atau unduh gambar sampel ini. Tambahkan file gambar ke direktori Sumber Daya/Gambar proyek. Di jendela Properti , atur Tindakan Build untuk masing-masing ke AndroidResource.
Buka Sumber Daya/Tata Letak/Main.axml dan sisipkan yang berikut ini:
<?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"
/>
Buka MainActivity.cs
dan sisipkan kode berikut untuk OnCreate()
Metode:
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 ();
};
}
Buat kelas baru yang disebut ImageAdapter
subkelas BaseAdapter
tersebut :
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
};
}
Jalankan aplikasi lagi. Ini akan terlihat seperti cuplikan layar di bawah ini:
Referensi
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.