无法在ImageViewAsync中加载图像

时间:2016-05-09 16:53:45

标签: c# xamarin xamarin.android

我无法将图像加载到ImageViewAsync中。图像应该只是一个空白。我尝试过同步和异步方法。 我在mipmap文件夹中有imageholderProfileImage.png。我通过绑定代码走调试器,所有看起来都是有序的。请注意,我删除了用文本填充视图的其他代码。那部分是有效的。关于图像,我做错了什么?

profilePhotoImageView在布局中定义:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/acquaintanceRow"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:gravity="center">
    <FFImageLoading.Views.ImageViewAsync
        android:id="@+id/profilePhotoImageView"
        android:scaleType="fitCenter"
        android:layout_width="50dp"
        android:layout_height="100dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:transitionName="@string/profilePhotoTransition" />
>

视图持有者类包含ProfilePhotoImageView:

internal class MyViewHolder : RecyclerView.ViewHolder
    {
    // removed stuff for brevity

        public ImageViewAsync ProfilePhotoImageView { get; }

        public MyViewHolder(View itemView) : base(itemView)
        {
            MyRow = itemView;

    // removed stuff for brevity

            ProfilePhotoImageView = MyRow.FindViewById<ImageViewAsync>(Resource.Id.profilePhotoImageView);
        }
    }

绑定代码:

public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
var viewHolder = holder as MyViewHolder;

string photoUrl = "placeholderProfileImage.png:";

FFImageLoading.Work.TaskParameter taskParameter = ImageService.LoadFileFromApplicationBundle(photoUrl);
FFImageLoading.Work.TaskParameter taskParameter2 = taskParameter.Transform(new CircleTransformation());
taskParameter2.Into(viewHolder.ProfilePhotoImageView);

// tried asynchronous as well, nothing
//FFImageLoading.Work.TaskParameter taskParameter = ImageService.LoadUrl(photoUrl);
//FFImageLoading.Work.TaskParameter taskParameter2 = taskParameter.Transform(new CircleTransformation());
//taskParameter2.Into(viewHolder.ProfilePhotoImageView);

}

1 个答案:

答案 0 :(得分:2)

LoadFileFromApplicationBundle正在从Assets加载文件,而不是mipmap文件夹。因此,您必须将文件移至Assets文件夹,并将构建操作设置为AndroidAsset