Xamarin - แกลลอรี่

แกลเลอรีคือมุมมองประเภทหนึ่งที่ใช้เพื่อแสดงรายการในรายการที่เลื่อนได้ในแนวนอน จากนั้นรายการที่เลือกจะแสดงที่กึ่งกลาง ในตัวอย่างนี้คุณจะสร้างแกลเลอรีที่มีรูปภาพซึ่งเลื่อนได้ในแนวนอน รูปภาพเมื่อคลิกจะแสดงตัวเลขสำหรับรูปภาพที่เลือก

ก่อนอื่นให้สร้างโปรเจ็กต์ใหม่และตั้งชื่อให้เช่น Gallery App Tutorial ก่อนเริ่มเขียนโค้ดให้วาง 7 ภาพลงในไฟล์resource /drawable folder. นำทางไปยังmain.axml ภายใต้ resources folder และแกลเลอรีที่อยู่ระหว่างแท็กเค้าโครงเชิงเส้น

<?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. คลาสนี้จะใช้ในการผูกรูปภาพเข้ากับแกลเลอรีที่เราสร้างไว้ด้านบน

ขั้นตอนแรกคือการเพิ่มคลาสที่มีบริบท cont ซึ่งเราใช้เก็บฟิลด์

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

ในขั้นตอนต่อไปเราจะสร้างไฟล์ imageview สำหรับรายการที่อ้างอิงโดยอะแด็ปเตอร์

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

สุดท้ายสร้างและเรียกใช้แอปพลิเคชันของคุณเพื่อดูผลลัพธ์