Фреска загрузить изображение с SDCard - PullRequest
0 голосов
/ 24 апреля 2018

Я использую библиотеку fresco и пытаюсь прочитать изображение с SD-карты в просмотр изображений.

 var CatalogCategories = System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).ToString(), "dbsoft");
                SimpleDraweeView draweeView = FindViewById<SimpleDraweeView>(Resource.Id.MainImageView);
                Android.Net.Uri imageUri = Android.Net.Uri.FromFile(new Java.IO.File(CatalogCategories, "Main.jpg"));// For files on device
                draweeView.SetImageURI(imageUri);

Я получаю сообщение об ошибке Невозможно преобразовать экземпляр типа androd.widget.imageviewнабрать Com.Facebook.Drawee.View.SimpleDraweeView

Если я изменит Imageview на

 <com.facebook.drawee.view.SimpleDraweeView
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:id="@+id/MainImageView" />

, то получаю ошибку

Android.Views.InflateException:Строка # 1 двоичного файла XML: Строка № 1 двоичного файла XML: Ошибка надувания класса com.facebook.drawee.view.SimpleDraweeView ---> Android.Views.InflateException: Строка # 1 двоичного файла XML: Ошибка раздувания класса com.facebook.drawee.view.SimpleDraweeView ---> Java.Lang.Reflect.InvocationTargetException: было сгенерировано исключение типа «Java.Lang.Reflect.InvocationTargetException».---> Java.Lang.NullPointerException: SimpleDraweeView не был инициализирован!

1 Ответ

0 голосов
/ 24 апреля 2018

Ошибка уже говорит вам, что вам нужно сделать: инициализируйте Fresco, позвонив в ваше приложение Fresco.initialize(...), например,

public class MyApplication extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    Fresco.initialize(this);
  }
}

Подробнее: http://frescolib.org/docs/

...