我正在使用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;
}
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
似乎找不到图片的位置。我应该将图片放在可绘制文件夹而不是
C:\
驱动器中吗?
在设备/模拟器上运行您的应用时,该应用无法访问您的本地文件夹,例如C:\XXX
。
加载图片的正确方法是将图片放入Resource\drawable
文件夹并将其属性设置为AndroidResource
(通过设置此VS会将图像构建到最终apk
文件)。:
然后使用ResourceId将其设置为ImageView
资源:
ImageView mImageView = FindViewById<ImageView>(Resource.Id.mImageView);
mImageView.SetImageResource(Resource.Drawable.tianyuan);