Xamarin.Android如何使用ViewPager创建可滑动的图库?

Mar*_*toc 3 c# xamarin.android android-viewpager xamarin

Android画廊现已弃用,因此我需要使用ViewPager.我只找到了Xamarin.Forms的代码示例,所以如果有人可以帮我处理Xamarin.Android的代码示例,我将不胜感激.

我的问题与Click on Viewpager Xamarin Android不同,因为我不需要点击照片,我只需要在图库中刷图像.

小智 6

虽然这是一个不同的问题,但这里有一个解决方案,它不需要您将图像片段用于简单的滑块. /sf/answers/2324639131/

public class ImageSliderAdapter : PagerAdapter
{
    Context _context;
    List<string> _imageUrls;

    public ImageSliderAdapter (Context context, List<string> imageUrls)
    {
        _imageUrls = imageUrls;
        _context = context;
    }

    public override bool IsViewFromObject (Android.Views.View view, Java.Lang.Object @object)
    {
        return view == ((LinearLayout)@object);
    }

    public override int Count {
        get {
            return _imageUrls.Count;
        }
    }

    public override void DestroyItem (ViewGroup container, int position, Java.Lang.Object objectValue)
    {
    }

    public override Java.Lang.Object InstantiateItem (ViewGroup container, int position)
    {

        View view = container;
        var inflater = _context.GetSystemService (Context.LayoutInflaterService) as LayoutInflater;
        view = inflater.Inflate (Resource.Layout.image_slider_item, null);
        var child = view.FindViewById<ImageView> (Resource.Id.image_slider_item);
        child.Click += (o, e) =>
        {
            //your code here
        };

        Bitmap image = null;
        Task.Run (() => {
            URL url = new URL (_imageUrls [position]);
            image = BitmapFactory.DecodeStream (url.OpenConnection ().InputStream);
        }).ContinueWith (t => {
            (_context as MainView).RunOnUiThread (() => {
                child.SetImageBitmap (image);
            });
        });

        container.AddView (view);
        return view;
    }
}
Run Code Online (Sandbox Code Playgroud)