2016-05-09 13 views
2

Ich kann kein Bild in ein ImageViewAsync laden. Es gibt nur ein Leerzeichen, wo das Bild sein sollte. Ich habe sowohl synchrone als auch asynchrone Ansätze ausprobiert. Ich habe das Bild placeholderProfileImage.png in den Mipmap Ordnern. Ich lief den Debugger durch den Bindungscode und alles scheint in Ordnung zu sein. Beachten Sie, dass ich anderen Code entfernt habe, der die Ansicht mit Text füllt. Dieser Teil funktioniert. Was mache ich falsch in Bezug auf das Bild?Bild kann nicht in ImageViewAsync geladen werden

profilePhotoImageView wird in einem Layout definiert:

<?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" /> 
> 

Der Halter Klassenansicht enthält 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); 
     } 
    } 

Binding-Code:

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); 

} 

Antwort

2

LoadFileFromApplicationBundle wird die Datei aus Assets nicht geladen der Mipmap-Ordner. Sie müssen also die Datei in Ihren Ordner Assets verschieben und die Build-Aktion auf AndroidAsset setzen.

+0

Vielen Dank für Ihre Antwort. Ich kopierte das Bild in den 'Assets'-Ordner und dann überprüfte ich die Eigenschaften und standardmäßig ist die Build-Aktion' AndroidAsset'. Ich habe Visual Studio neu gestartet und die Lösung für ein gutes Maß gereinigt und gebaut, aber immer noch kein Bild.Ich vermute, was Sie sagen, ist notwendig, aber es muss mehr sein. –

+0

Es funktioniert jetzt. Ich weiß nicht, was ehrlich gesagt passiert ist. Ich habe den Code nicht geändert. Ein Re-Build hat sich schließlich durchgesetzt oder so. –