В основном я работаю над галереей на монодроиде, где пользователь щелкает изображение, и изображение устанавливается на просмотр изображения.Я знаю, что есть пример, но проблема в том, что я использую изображения из своей SDCard для установки изображений галереи.
Я могу получить все изображения и т.д. и установить их ... вроде ... Я использую этот примерhttp://docs.xamarin.com/android/tutorials/User_Interface/gallery с моносайта, но по кругу ... любые идеи или решения были бы хороши.
Вот мой код.
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, ItemEventArgs args)
{
Toast.MakeText(this, args.Position.ToString(), ToastLength.Short).Show();
};
}
public class ImageAdapter : BaseAdapter
{
Context context;
public string[] numImages = Directory.GetFiles("/sdcard/DCIM/Camera/");
public string[] images;
public ImageAdapter(Context c)
{
context = c;
}
public override int Count { get { return numImages.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.SetImageURI(Android.Net.Uri.Parse(numImages[position].ToString()));
i.LayoutParameters = new Gallery.LayoutParams(150, 100);
i.SetScaleType(ImageView.ScaleType.FitXy);
return i;
}
}
}
}
Просто взгляните на метод GetView. Я устанавливаю галерею imageViews для изображений, хранящихся в numImages.Что я нахожу странным, так это то, что, если я храню только 2, он работает, но что-то, кроме него, вылетает.
Есть идеи?