Monodroid画廊图像选择器

时间:2011-12-22 12:20:19

标签: imageview gallery xamarin.android

基本上我正在使用monodroid上的画廊,用户点击图像并将图像设置为imageview。我知道有一个例子,但问题是我正在使用我的SD卡中的图像来设置图库图像。

我可以获取所有图像等并设置它们......有点......我正在使用这个例子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方法..我将图库viewViews设置为存储在numImages中的图像。我觉得奇怪的是,如果我只存储2它可以工作,但任何事情都会崩溃。

有什么想法吗?

0 个答案:

没有答案