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

마지막으로 애플리케이션을 빌드하고 실행하여 출력을 확인합니다.