Gelöst angezeigt:Die Antwort war all die nuget Pakete zu aktualisieren und eine neuere Version von Android Ziel. Jetzt werden Bilder wie erwartet geladen. Ich bin nicht zufrieden damit, da ich genau den Code verwendet habe, den Xamarin zur Verfügung gestellt hat, und das Targeting auf neuere Versionen hat einige der Elemente, auf die sich der Code stützt, für veraltet erklärt. Erste Version war Xamarin.Forms v23 und ich auf V25ein Bild mit Xamarin Forms
Ich habe eine brandneue Xamarin Formen Projekt mit einer einfachen Ansicht, in der ich versuche, ein Bild anzuzeigen. Ich habe verschiedene Möglichkeiten ausprobiert, um ein Bild zur Anzeige zu bringen, und ich habe überhaupt kein Glück.
Ich benutze <image>
und ich habe auch FFImageLoader Kontrolle ausprobiert.
<StackLayout Orientation="Vertical">
<ff:CachedImage Source="https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg" WidthRequest="100" HeightRequest="100" />
<Button x:Name="btn" Text="Image" Clicked="Button_Clicked" />
<Frame OutlineColor="Red">
<Image x:Name="StupidImage" Source="{Binding Thumbnail}" Aspect="Fill" HeightRequest="100" WidthRequest="100" />
</Frame>
</StackLayout>
Dies ist die aktuelle Ansicht. Ich habe auch die Quelle direkt auf einen Wert ohne Ergebnis gesetzt.
Ich bin in der Lage, einen Stream für das Bild zu bekommen. Ich kann alle Bytes aus dem Stream lesen. Ich baute einen Debug-Visualizer, um die Bytes als Bild anzuzeigen. Das Bild von einer Quelle zu bekommen ist kein Problem. Es ist ein Problem, die Bildsteuerung (en) zur Anzeige des Bildes zu bekommen.
Ich versuchte, mit einem Ansichtsmodell zu binden. Als das scheiterte, versuchte ich, dass direkt die Quelle Einstellung
StupidImage.Source = ImageSource.FromStream(() => result.Stream);
Ich habe auch eine Kopie des Bytes und versuchte
StupidImage.Source = ImageSource.FromStream(() => new MemoryStream(imageBytes));
Ich habe versucht, ImageSource.FromFile()
und .FromUri
. Ich habe versucht, dem Projekt ein Bild als Ressource hinzuzufügen. Jeder Versuch war der gleiche, die Ressource wurde gelesen und die Bytes waren verfügbar, aber das Bildsteuerelement zeigt es nicht an.
Ich dachte, vielleicht war es ein Größenproblem, also habe ich die Größe des Steuerelements festgelegt. Nichts. Ich dachte, es wäre vielleicht ein Auflösungsproblem, also habe ich ein kleineres Bild verwendet. Ich habe verschiedene Bilder unterschiedlicher Qualität ausprobiert.
Dann gab ich die Bildkontrolle auf und ich bekam das FFImageLoading nuget-Paket und gab ihm eine direkte URL zu einem Bild. Das gleiche Beispiel, das FFImageLoading-Beispiele verwendet haben. Immer noch kein Bild.
Ich habe den Emulator versucht und ich habe 2 verschiedene physikalische Geräte ausprobiert. Gleiches Ergebnis.
Ich habe auch versucht, ein Bild auf einer Schaltfläche mit btn.Image = "whatever.jpg"
mit dem gleichen Ergebnis zu setzen.
Dies ist das Ergebnis jedes Mal. Ich bin verloren. Wie kann ich Bilder anzeigen lassen?
EDIT: Ich tat dies, aber
<Image x:Name="StupidImage" Source="https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg" />
und gleich für
StupidImage.Source = ImageSource.FromUri(new Uri("https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg"));
EDIT 2 nur auf dem Emulator zu arbeiten - Klärung
Mein Ziel ist es, dem Benutzer zu erlauben, ein Foto von dem Gerät auszuwählen und dann ein Previ anzuzeigen ew davon.
Setzen Sie Ihr Bild in die Inhaltsansicht und versuchen Sie es kommt oder nicht –
Haben Sie es auf anderen Plattformen außer Android versucht? Hier ist die offizielle Dokumentation: https://developer.xamarin.com/guides/xamarin-forms/user-interface/images/#Downloading_Images Versuchen Sie das Caching zu deaktivieren ... – EvZ
@EvZ Ich versuche eine Datei vom Gerät zu laden , keine URL. Ich habe versucht, das Beispiel uri in der Link Ihre zur Verfügung gestellt und ich habe es funktioniert (zumindest auf dem Emulator), aber immer noch nicht mit einem Stream oder Datei –