web-dev-qa-db-de.com

Wie verwende ich die Image Source-Eigenschaft korrekt mit Xamarin.Forms?

Ich habe Schwierigkeiten, ein Bild auf der Inhaltsseite in einem Stapel-Layout aufzurufen. Ich habe die Xamarin-API-Dokumentation durchgesehen und Xamarin.Forms.Image.Source-Eigenschaft gefunden, aber keinen Beispielcode, um zu sehen, wie er geschrieben wurde. Ich habe auch nachgesehen, wie es in C # geschrieben wurde und in Bezug auf den Dateinamenpfad meinem Code zu entsprechen scheint, aber in Xamarin kann es etwas anders sein, da dies das erste Mal ist. Den Code, den ich gerade teste, verwende ich in Visual Studio 2013 mit einem Android= Emulator (Google Nexus 5)), der mit Ausnahme des nicht angezeigten Bildes einwandfrei funktioniert.

Bildquelle:

new Image
{
     VerticalOptions = LayoutOptions.Center,
     HorizontalOptions = LayoutOptions.Center,
     Source = "/Assets/xamarin_logo.png",
},

Vollständiger Code:

public NFCPage()
    {
        StackLayout stackLayout = new StackLayout // instantiate a StackLayout object to layout its children
        {
            Spacing = 5, // amount of spae between each child element
            //HorizontalOptions = LayoutOptions.Center,
            VerticalOptions = LayoutOptions.FillAndExpand, // defines how the elements should be laid out; fill the entire width of the content to the screen
            BackgroundColor = Color.Blue,

            Children = // gets a list of child elements
            {
                new Label
                {   
                    TextColor = Color.White,
                    BackgroundColor = Color.Red,
                    XAlign = TextAlignment.Center, // set text alignment horizontally
                    Text = "Google",
                },
                new Label
                {
                    Text = "Place your device directly at the symbol.",
                    XAlign = TextAlignment.Center,
                    TextColor = Color.White,
                },
                new Image
                {
                    VerticalOptions = LayoutOptions.Center,
                    HorizontalOptions = LayoutOptions.Center,
                    Source = "/Assets/xamarin_logo.png",
                },
                new Button
                {
                    Text = "QR Code",
                    TextColor = Color.White,
                },
                new Button
                {
                    Text = "?",
                    TextColor = Color.White,
                },
            }
        };
        Content = stackLayout; // apply stackLayout to Content
    }
23

Sie sollten nicht auf den Pfad verweisen, da die Quelleigenschaft plattformübergreifend ist und da jede Plattform einen anderen Ordner für Assets wie Bilder hat, müssen Sie nur den Dateinamen und die Erweiterung angeben. Die Image-Klasse weiß, wo sie nach der Datei suchen muss.

Bilddateien können zu jedem Anwendungsprojekt hinzugefügt und über den gemeinsam genutzten Code von Xamarin.Forms referenziert werden. Um ein einzelnes Bild für alle Apps zu verwenden, muss auf jeder Plattform derselbe Dateiname verwendet werden, und es sollte ein gültiger Android Ressourcenname sein (dh keine Leerzeichen und Sonderzeichen) Das Verzeichnis Resources/drawable mit Build Action: AndroidResource. Versionen eines Bildes mit hoher und niedriger DPI können ebenfalls bereitgestellt werden (in entsprechend benannten Unterverzeichnissen Resources wie drawable-ldpi, drawable-hdpi und drawable-xhdpi).

enter image description here

var beachImage = new Image { Aspect = Aspect.AspectFit };
beachImage.Source = ImageSource.FromFile("waterfront.jpg");

Quelle: https://developer.xamarin.com/guides/xamarin-forms/working-with/images/#Local_Images =

32
Adam

Wenn Sie bereit sind, Bilder mithilfe von Code hinzuzufügen, versuchen Sie dies

Wird automatisch heruntergeladen und das Bild angezeigt

        var webImage = new Image { Aspect = Aspect.AspectFit };
        webImage.Source = ImageSource.FromUri(new Uri("https://xamarin.com/content/images/pages/forms/example-app.png"));
6
Asbar Ali

Fügen Sie das Bild im Projektmappen-Explorer hinzu, indem Sie auf Resources/Drawable folder klicken und New/Existing item auswählen. Kopieren Sie das Bild nicht in den Ordner Resources/Drawable. Ich hoffe, es hilft.