Просмотр указанного c изображения из полного пути к галерее без просмотра - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь:

   <Image Source="/storage/emulated/0/Pictures/Test/IMG_20200408_085036.jpg"/>

Без эффекта.
Файл imageSp c = новый файл ('/ storage / emulated / 0 / Pictures / Test / IMG_20200408_085036.jpg');
var imageSp c = новый файл ('/ storage / emulated / 0 / Pictures / Test / IMG_20200408_085036.jpg');
Ошибка, невозможно создать переменную stati c для типа File или var.

            <Image x:Name="fotka" Aspect="AspectFit" HeightRequest = "50"
    WidthRequest = "60"/>

fotka.Source = ImageSource.FromFile ("/ storage / emulated / 0 / Pictures / Test / IMG_20200408_085036.jpg");
Нет эффекта
Возможно отобразить указанные c изображение из галереи в XAML или хотя бы из кода

enter image description here

Я включил опцию уведомления ADB на устройстве. В момент, когда изображение будет отображаться, компилятор покажет ошибку:

enter image description here

Как исправить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Я обнаружил, что каждое изображение перед показом в действии должно быть изменено до максимального размера 4096 x 4096 px, в противном случае изображение не отображается, без каких-либо сообщений об ошибках.

0 голосов
/ 13 апреля 2020

Согласно вашему описанию, вы хотите отобразить изображение, используя путь к галерее, если да, посмотрите следующий код:

Во-первых, вам нужно получить путь к изображению из галереи в Android или ios.

Создание интерфейса IFileSystem в PCL (формы)

public interface IFileSystem
{       
     string GetGalleryImage();
}

Затем реализация этого интерфейса на платформе приведена в примере Android.

[assembly: Dependency(typeof(FileSystemImplementation))]
namespace demo3.Droid
{
public class FileSystemImplementation : IFileSystem
{

    public string GetGalleryImage()
    {      
        var filePath = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryPictures);
        var path = System.IO.Path.Combine(filePath.AbsolutePath, "Test/image1.jpg");
        return path;
    }
}
}

Добавьте один элемент управления изображением в PCL (формы) с именем image1, используя DependencyService для получения пути к изображению.

  <Button
            x:Name="btn1"
            Clicked="Btn1_Clicked"
            Text="load image" />
        <Image
            x:Name="image1"
            HeightRequest="100"
            WidthRequest="100" />

  private void Btn1_Clicked(object sender, EventArgs e)
    {         
        var path = DependencyService.Get<IFileSystem>().GetGalleryImage();
        image1.Source = ImageSource.FromFile(path);
    }

В этой статье о DependencyService вы можете посмотреть:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/dependency-service/introduction

Обновление:

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...