xaml - 无需浏览即可从完整图库路径查看特定图像
问题描述
我正在努力:
<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 通知选项。在要显示的时刻图像编译器显示错误:
如何解决此错误?
解决方案
根据您的描述,您想使用图库路径显示图像,如果是,请查看以下代码:
首先,您需要从 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的文章,你可以看看:
更新:
推荐阅读
- apache-spark - 我有一个大型 hql 查询,我使用 pyspark sql 调用它。但是我收到错误,例如 Bad connect ack with firstBadLink 错误
- ruby - 如何选择具有另外一个条件的 uniq 哈希值
- python - Python 是否有任何 Perl 的 CGI::Carp qw(fatalsToBrowser) 替代品?
- java - 如何使用 Swagger 生成的客户端(Feign)
- python - 在某些重叠列上合并两个数据框,同时保持非重叠列
- activeweb - ActiveWeb 控制器:测试标头值的存在
- visual-studio-code - Visual Studio Code 中每个窗口的不同主题
- android - 如何在 Android Studio 中恢复边距编辑器?
- laravel-5 - 对预检请求的响应未通过?
- javascript - 在画布上居中图像并调整画布宽度的 50%