C# Xamarin Android应用程序中未显示嵌入图像
我遵循官方的指南,告诉我如何将图像嵌入到跨平台应用程序中。我只为Android平台构建应用程序 不幸的是,在我的Sony D5803 Z3 Compact或Android 7.1 emulator上调试时,该图像没有显示。我在Windows 10上使用VS 2017 RC。以前所有HelloWorld应用程序(例如通过URI下载图片)都在我的手机上运行良好 如果您能为我提供有关如何解决问题的帮助或建议,我将不胜感激 图像C# Xamarin Android应用程序中未显示嵌入图像,c#,visual-studio,xaml,xamarin,xamarin.android,C#,Visual Studio,Xaml,Xamarin,Xamarin.android,我遵循官方的指南,告诉我如何将图像嵌入到跨平台应用程序中。我只为Android平台构建应用程序 不幸的是,在我的Sony D5803 Z3 Compact或Android 7.1 emulator上调试时,该图像没有显示。我在Windows 10上使用VS 2017 RC。以前所有HelloWorld应用程序(例如通过URI下载图片)都在我的手机上运行良好 如果您能为我提供有关如何解决问题的帮助或建议,我将不胜感激 图像picture.jpg设置了构建属性嵌入资源(波兰语Akcja kompil
picture.jpg
设置了构建属性嵌入资源
(波兰语Akcja kompilacji:osadzony zasób
)
我可以看到调试文件夹中的图像,如屏幕截图所示
这是我用来显示图像的XAML页面:
ImageEmbeddedPAge.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:markupExtensions="clr-namespace:HelloWorld.MarkupExtensions;assembly=HelloWorld.Droid"
x:Class="HelloWorld.ImageEmbeddedPAge">
<StackLayout HorizontalOptions="Center"
VerticalOptions="Center">
<Image x:Name="image"
Source="{markupExtensions:ImageResource Source=HelloWorld.Images.picture.jpg}"/>
</StackLayout>
</ContentPage>
App.xaml.cs
namespace HelloWorld
{
public partial class App : Application
{
public App ()
{
InitializeComponent();
MainPage = new ImageEmbeddedPAge();
}
}
}
完全同意@Cheesebaron,因为您创建了一个Xamarin.Forms共享项目,我们需要在Android项目中放置分辨率图像,这些特别命名的目录都放在Android项目中的
参考资料->可绘制的文件夹下
如果您想使用嵌入式映像,我们需要为每个platfrom使用一个可移植库,或者只创建一个Xamarin.Forms可移植项目。如果您想自己创建PCL,请小心此PCL的目标,通常应如下图所示,以便可用于不同的平台:
最后,要在项目中嵌入图像,默认情况下图像将具有生成操作:无
,请将其设置为生成操作:嵌入资源
我们无法在共享项目中放置图像的原因是:
共享项目引用显示在解决方案资源管理器的“引用”节点下,但共享项目中的代码和资源将被视为链接到主项目中的文件
然后图像被视为文件而不是资源。更新:我使用跨平台应用程序创建了一个干净的解决方案,但问题仍然存在-没有显示图像。您应该使用“使用本机分辨率”中描述的内容,因为您使用的是共享项目,而不是可移植类库。
namespace HelloWorld
{
public partial class App : Application
{
public App ()
{
InitializeComponent();
MainPage = new ImageEmbeddedPAge();
}
}
}