图像url Listview Xamarin
下载图像并在imageview中查看的代码图像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
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);
}