图像url Listview Xamarin

图像url Listview Xamarin,url,xamarin,imageview,Url,Xamarin,Imageview,下载图像并在imageview中查看的代码 public override View GetView(int position, View convertView, ViewGroup parent) { var feedItem = this.feedsList[position]; var view = (convertView ?? context.LayoutInflater.Inflate(Resource.Layout.ItemListIte

下载图像并在imageview中查看的代码

public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var feedItem = this.feedsList[position];

        var view = (convertView ?? context.LayoutInflater.Inflate(Resource.Layout.ItemListItemLayout, parent, false)) as LinearLayout;

        var img = view.FindViewById<ImageView>(Resource.Id.imazhi);
        var imageBitmap2 = GetImageBitmapFromUrl(feedItem.link_img);
        img.SetImageBitmap(imageBitmap2);

        return view;
    }

 private Bitmap GetImageBitmapFromUrl(string url)
    {
        Bitmap imageBitmap = null;

        using (var webClient = new WebClient())
        {
            try
            {
                var imageBytes = webClient.DownloadData(url);
                if (imageBytes != null && imageBytes.Length > 0)
                {

                    imageBitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
                }
            }
            catch
            {

            }
        }

        return imageBitmap;
    }
public override View GetView(int位置、视图转换视图、视图组父视图)
{
var feedItem=此.feedsList[位置];
变量视图=(convertView??context.LayoutInflater.Inflate(Resource.Layout.ItemListItemLayout,parent,false))作为线性布局;
var img=view.findviewbyd(Resource.Id.imazhi);
var imageBitmap2=GetImageBitmapFromUrl(feedItem.link\u img);
img.SetImageBitmap(imageBitmap2);
返回视图;
}
私有位图GetImageBitmapFromUrl(字符串url)
{
位图imageBitmap=null;
使用(var webClient=new webClient())
{
尝试
{
var imageBytes=webClient.DownloadData(url);
if(imageBytes!=null&&imageBytes.Length>0)
{
imageBitmap=BitmapFactory.DecodeByteArray(imageBytes,0,imageBytes.Length);
}
}
抓住
{
}
}
返回图像位图;
}
它的工作,但它需要时间来加载,我不能在手机屏幕上移动 . 有四十多张图片

我想要的是:

加载更多内容而不会使我的屏幕崩溃

加载时,我可以移动listview

带有图像的应用程序示例:Instagram、加载照片的facebook不会锁定屏幕


有人能帮我吗?对不起,英国人;)

我在Xamarin.Android应用程序中使用了
fImageLoading
,效果非常好。它会自动将图像缓存到磁盘,并提供更多功能

努吉:

文件:

使用ImageViewAsync而不是ImageView

<FFImageLoading.Views.ImageViewAsync
    android:id="@+id/imgLiterature"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="8dp"
    android:adjustViewBounds="true"
    android:background="@android:drawable/ic_menu_gallery"
    android:scaleType="fitXY" />
它异步运行,不会阻塞ui

public void LoadImage (FFImageLoading.Views.ImageViewAsync imageview, string url)
{
    ImageService.Instance.Initialize (new Configuration {
                    HttpClient = new HttpClient() // here you can add authentication if needed
    });
    ImageService.Instance.LoadUrl (url).Into (imageview);
}