Universal Imageloader DisplayImage不显示图像?

时间:2017-04-17 13:35:15

标签: android xamarin.android universal-image-loader

我正在使用Visual Studio中的Xamarin Android项目,我正在尝试在listView中为每个对象显示一张图片,但它们没有显示出来。当我调试它时,它获取对象的所有其他细节,除了图像路径,并显示为null

目前,我将图片放在项目文件夹中的 images 文件夹中。我列出了这样的路径

string imageUri = @"C:\Users\aanwar\Documents\Visual Studio 2017\Projects\ContosoLibrary\ContosoLibrary\images";

似乎找不到图片的位置。我应该将图片放在可绘制文件夹中而不是放在C:\驱动器中吗?

class BookListAdapter : BaseAdapter<BookDetailDTO>
{   
    Activity context;
    ImageLoader imageLoader = ImageLoader.Instance;
    string imageUri = "C:/Users/aanwar/Documents/Visual Studio 2017/Projects/ContosoLibrary/ContosoLibrary/images";

    public BookListAdapter(List<BookDetailDTO> bookList, Activity context) : base()
    {
        this.context = context;
        imageLoader.Init(ImageLoaderConfiguration.CreateDefault(context));
    }

    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var item = items[position];

        if (convertView == null)
            convertView = context.LayoutInflater.Inflate(Resource.Layout.BookRowView, null);

        convertView.FindViewById<TextView>(Resource.Id.bookNameTextView).Text = item.Title;
        convertView.FindViewById<TextView>(Resource.Id.priceTextView).Text = "$ " + item.Price;

        imageLoader.DisplayImage(imageUri + item.ImagePath + ".jpg",
            convertView.FindViewById<ImageView>(Resource.Id.bookImageView));

        return convertView;
    }

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

  

似乎找不到图片的位置。我应该将图片放在可绘制文件夹而不是C:\驱动器中吗?

在设备/模拟器上运行您的应用时,该应用无法访问您的本地文件夹,例如C:\XXX

加载图片的正确方法是将图片放入Resource\drawable文件夹并将其属性设置为AndroidResource(通过设置此VS会将图像构建到最终apk文件)。:

enter image description here

然后使用ResourceId将其设置为ImageView资源:

ImageView mImageView = FindViewById<ImageView>(Resource.Id.mImageView);
mImageView.SetImageResource(Resource.Drawable.tianyuan);