Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin Android应用程序中未显示嵌入图像_C#_Visual Studio_Xaml_Xamarin_Xamarin.android - Fatal编程技术网

C# Xamarin Android应用程序中未显示嵌入图像

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

我遵循官方的指南,告诉我如何将图像嵌入到跨平台应用程序中。我只为Android平台构建应用程序

不幸的是,在我的Sony D5803 Z3 Compact或Android 7.1 emulator上调试时,该图像没有显示。我在Windows 10上使用VS 2017 RC。以前所有HelloWorld应用程序(例如通过URI下载图片)都在我的手机上运行良好

如果您能为我提供有关如何解决问题的帮助或建议,我将不胜感激

图像
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();
        }
    }
}