Как открыть файл изображения и отобразить его в ImageView с помощью Xamarin Android?

#c# #android #xamarin

#c# #Android #xamarin

Вопрос:

Я разрабатываю приложение для обработки изображений, в котором пользователю нужно нажать на какую-либо кнопку, чтобы открыть файловую систему внутреннего хранилища для поиска файлов изображений, мне нужно отобразить изображение, выбранное пользователем, внутри ImageView объекта на моем макете. У меня есть код ниже, но когда я выбираю образец изображения, изображение не отображается в моем ImageView объекте, оно ничего не показывает. Я начал просмотр файлов с помощью этого кода….

 //show the file manager with extensions  Intent image_intent= new Intent(Intent.ActionOpenDocument);  image_intent.AddCategory(Intent.CategoryOpenable);  //set the type for image files  image_intent.SetType("image/*");  StartActivityForResult(image_intent, 899);  

а затем я переопределяю OnActivityResult() метод, чтобы я мог получать данные изображения из данных о намерениях, передаваемых обратно, когда происходит это событие, но в моем коде, похоже, есть небольшая проблема. Вот код, который должен создать растровое изображение из файла, а затем отобразить его в виде изображения

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)  {  if (resultCode == Result.Ok)  {  if (requestCode == 899)  {  //display the image in the ImageView  Android.Net.Uri myuri = Android.Net.Uri.FromFile(new File(data.Data.Path));  File myfile = new File(myuri.ToString());  //define a new set of BitmapOptions  BitmapFactory.Options options = new BitmapFactory.Options();  options.OutWidth = imageView.Width;  options.OutHeight = imageView.Height;  Bitmap mymap = BitmapFactory.DecodeFile(myfile.AbsolutePath, options);  //display it in the imageview  imageView.SetImageBitmap(mymap);  Toast.MakeText(this, "Loading the image into the ImageView", ToastLength.Long).Show();  }  }  base.OnActivityResult(requestCode, resultCode, data);  }  

Что я делаю не так, спасибо Вам за вашу помощь.

Комментарии:

1. вы прошли через этот код, чтобы убедиться, что он выполняется должным образом? Вы проверяли наличие каких-либо исключений или ошибок?

2. imageView.SetImageUri(data.Data); . Вот и все. Вы злоупотребляете классом файла для своего uri.

3. @ blackapps Позвольте мне попробовать изменения, которые вы предложили в своем комментарии, Спасибо за ваши усилия

4. @Jason , да, у меня есть изображение в каталоге с возможностью рисования, и оно отображается, но когда я просматриваю файл изображения и нажимаю на него, оно не отображается в представлении изображения

5. it displays but when I browse an image file and tap on it it does not show up in the image view Вы имеете в виду изображение в памяти вашего устройства?