2017-09-27 27 views
0

私はXamarinフォーム、クロスプラットフォームアプリ(AndroidとiOS)を開発中です。私はログインフォームの背景イメージを持っていたかった。Xamarinは背景画像が機能しない

私は、フォームとコードのコンストラクタでそれを設定するには、次のとおりです。

this.BackgroundImage = ImageSource.FromResource("PCLProjectName.Images.Login.loginbackground.png").ToString(); 

画像がPCLのプロジェクトであり、私はEmbedded resourceとしてのアクションプロパティを設定しています。

Root 
- Images 
    - Login 
     -loginbackground.png 

イメージが動作する画像については

答えて

0

が表示されていない以下のように

PCLプロジェクトのフォルダ階層、彼らはiOSandroidに異なるフォルダに配置する必要があります。私の知る限り、サブフォルダやカスタムファイル構造は使用できません。

Android搭載端末の場合、Androidプロジェクトの画像はAndroid>Resources>Drawableである必要があります。構築アクションをAndroid Resourceに設定してください(このフォルダは既に存在するはずです)

iOSデバイスの場合、画像はiOSプロジェクトフォルダiOS>Resourcesに存在する必要があります。 ..あなたがそうのような画像を設定することができ、アクションは(このフォルダには、すでに存在している必要があります)それぞれのフォルダ内の画像で

Bundle Resourceに設定 this.BackgroundImage = ImageSource.FromFile("loginbackground.png")

編集をビルドします。あなたのPCL埋め込まれたリソースのアプローチを続行するには..

このコードをどこかで実行すると、画像がリソース内で正しく検出されたことを確認できます。

var assembly = typeof(EmbeddedImages).GetTypeInfo().Assembly; 
    foreach (var res in assembly.GetManifestResourceNames()) 
    System.Diagnostics.Debug.WriteLine("found resource: " + res); 
+0

私はこのアプローチを知っています。静的な画像がたくさんあるので、管理しやすいようにそれぞれのフォルダに入れたいと思います。このリンクを確認してください:https://developer.xamarin.com/guides/xamarin-forms/user-interface/images/埋め込み画像は可能です – Mahajan344

+0

あなたのPCLのルートフォルダに置かれた画像を読み込むことができますか? '.ToString()'がイメージ行に追加されるのはなぜですか? – Bejasc

+0

@ Mahajan344は役に立つかもしれないコードで答えを更新しました。私がここで見たもう一つの試みhttps://forums.xamarin.com/discussion/comment/95139/#Comment_95139 - あなたは 'FromResource'を使ってそれをロードし、フォルダディレクトリなしでファイル名を提供することができます。私はこれを自分で試したことはありません。 – Bejasc

0

あなたはXamarinでページ全体のためにXAMLファイルで背景画像を追加したい場合は(私はあなたの例に遭遇した任意の表示されていないが)、私はいくつかの奇妙なファイルの命名問題がある経験から知っています次に、BackgroundImageプロパティを使用して、AndroidプロジェクトのResources - > DrawableフォルダおよびiOS Resourcesフォルダにイメージを追加します。

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
        xmlns:local="clr-namespace:PhoneDailerDemo" 
        x:Class="PhoneDailerDemo.MainPage" 
        BackgroundImage="image3.jpg"> 

      <Label Text="Welcome to Xamarin Forms!" 
        VerticalOptions="Center" 
        HorizontalOptions="Center" /> 
      <StackLayout Padding="100"> 
       //.......... 
      </StackLayout> 
    </ContentPage> 
関連する問題