Tengo dificultades para mostrar una imagen en la página de contenido en un diseño de pila. Revisé la documentación de la API de Xamarin y encontré Xamarin.Forms.Image.Source Property , pero no hay código de muestra para ver cómo está escrito. También verifiqué cómo estaba escrito en C# y parece coincidir con mi código en términos de la ruta del nombre de archivo, pero en Xamarin, puede ser ligeramente diferente ya que es la primera vez que lo hace. El código que estoy probando actualmente a través de un emulador de Android (Google Nexus 5) en Visual Studio 2013 funciona bien, con la excepción de que la imagen no se muestra.
Fuente de imagen:
new Image { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, Source = "/Assets/xamarin_logo.png", },Código completo:
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 }No debe hacer referencia a la ruta porque la propiedad de origen es multiplataforma y dado que cada plataforma tiene una carpeta diferente para activos como imágenes, solo necesita especificar el nombre de archivo y la extensión. La clase Imagen sabe dónde buscar para encontrar el archivo.
Los archivos de imagen se pueden agregar a cada proyecto de aplicación y se puede hacer referencia a ellos desde el código compartido de Xamarin.Forms. Para usar una sola imagen en todas las aplicaciones, se debe usar el mismo nombre de archivo en todas las plataformas y debe ser un nombre de recurso de Android válido (es decir, sin espacios ni caracteres especiales). Coloque las imágenes en el directorio Resources/drawable con Build Action: AndroidResource . También se pueden proporcionar versiones de una imagen de alto y bajo DPI (en subdirectorios de recursos con nombres apropiados, como drawable-ldpi , drawable-hdpi y drawable-xhdpi ).
var beachImage = new Image { Aspect = Aspect.AspectFit }; beachImage.Source = ImageSource.FromFile("waterfront.jpg");Si está dispuesto a agregar imágenes usando código, intente esto
Descargado automáticamente y mostrar la imagen
var webImage = new Image { Aspect = Aspect.AspectFit }; webImage.Source = ImageSource.FromUri(new Uri("https://xamarin.com/content/images/pages/forms/example-app.png"));Agregue la imagen en el Explorador de soluciones haciendo clic en la carpeta Recursos/Dibujable y seleccione Elemento nuevo/existente. No copie la imagen en la carpeta Recursos/Dibujable. Espero que ayude.