Палитра изображений галереи Monodroid - PullRequest
0 голосов
/ 22 декабря 2011

В основном я работаю над галереей на монодроиде, где пользователь щелкает изображение, и изображение устанавливается на просмотр изображения.Я знаю, что есть пример, но проблема в том, что я использую изображения из своей 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, он работает, но что-то, кроме него, вылетает.

Есть идеи?

...