首页 > 解决方案 > 无需浏览即可从完整图库路径查看特定图像

问题描述

我正在努力:

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

没有效果。
File imageSpc = new File('/storage/emulated/0/Pictures/Test/IMG_20200408_085036.jpg');
var imageSpc = new File('/storage/emulated/0/Pictures/Test/IMG_20200408_085036.jpg');
错误,无法为 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");
没有效果
可以从 XAML 中的画廊或至少从代码中显示特定图像

在此处输入图像描述

我确实在设备中启用了 ADB 通知选项。在要显示的时刻图像编译器显示错误:

在此处输入图像描述

如何解决此错误?

标签: xamlxamarin

解决方案


根据您的描述,您想使用图库路径显示图像,如果是,请查看以下代码:

首先,您需要从 Android 或 ios 中的图库中获取图像路径。

在 PCL(Forms) 中创建接口 IFileSystem

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(Forms)中添加一个Image控件,命名为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

更新:

在此处输入图像描述

在此处输入图像描述


推荐阅读