如何正确使用图像源 属性 和 Xamarin.Forms?
How to correctly use the Image Source property with Xamarin.Forms?
我无法在堆栈布局的内容页面上调出图像。我查看了 Xamarin API 文档并找到了 Xamarin.Forms.Image.Source Property,但没有示例代码可以查看它是如何编写的。我还检查了它是如何用 C# 编写的,并且在文件名路径方面似乎与我的代码匹配,但在 Xamarin 中,它可能略有不同,因为这是第一次这样做。我目前在 Visual Studio 2013 中通过 Android 模拟器 (Google Nexus 5) 测试的代码运行良好,但图像未显示。
图片来源:
new Image
{
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
Source = "/Assets/xamarin_logo.png",
},
完整代码:
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
}
您不应引用该路径,因为来源 属性 是跨平台的,并且由于每个平台都有不同的文件夹用于存放图像等资产,您只需指定文件名和扩展名。 Image class 知道在哪里可以找到文件。
可以将图像文件添加到每个应用程序项目并从 Xamarin.Forms 共享代码中引用。要在所有应用程序中使用同一个图像,必须在每个平台上使用相同的文件名,并且它应该是有效的 Android 资源名称(这意味着没有空格和特殊字符)。使用 Build Action: AndroidResource 将图像放在 Resources/drawable 目录中。还可以提供图像的高 DPI 和低 DPI 版本(在适当命名的 Resources 子目录中,例如 drawable-ldpi 、 drawable-hdpi 和 drawable-xhdpi )。
var beachImage = new Image { Aspect = Aspect.AspectFit };
beachImage.Source = ImageSource.FromFile("waterfront.jpg");
通过单击 Resources/Drawable 文件夹在解决方案资源管理器中添加图像,并且 select New/Existing item.Please 不要将图像复制到 Resources/Drawable 文件夹。希望对你有帮助。
如果您愿意使用代码添加图片,
试试这个
自动下载并显示图片
var webImage = new Image { Aspect = Aspect.AspectFit };
webImage.Source = ImageSource.FromUri(new Uri("https://xamarin.com/content/images/pages/forms/example-app.png"));
我无法在堆栈布局的内容页面上调出图像。我查看了 Xamarin API 文档并找到了 Xamarin.Forms.Image.Source Property,但没有示例代码可以查看它是如何编写的。我还检查了它是如何用 C# 编写的,并且在文件名路径方面似乎与我的代码匹配,但在 Xamarin 中,它可能略有不同,因为这是第一次这样做。我目前在 Visual Studio 2013 中通过 Android 模拟器 (Google Nexus 5) 测试的代码运行良好,但图像未显示。
图片来源:
new Image
{
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
Source = "/Assets/xamarin_logo.png",
},
完整代码:
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
}
您不应引用该路径,因为来源 属性 是跨平台的,并且由于每个平台都有不同的文件夹用于存放图像等资产,您只需指定文件名和扩展名。 Image class 知道在哪里可以找到文件。
可以将图像文件添加到每个应用程序项目并从 Xamarin.Forms 共享代码中引用。要在所有应用程序中使用同一个图像,必须在每个平台上使用相同的文件名,并且它应该是有效的 Android 资源名称(这意味着没有空格和特殊字符)。使用 Build Action: AndroidResource 将图像放在 Resources/drawable 目录中。还可以提供图像的高 DPI 和低 DPI 版本(在适当命名的 Resources 子目录中,例如 drawable-ldpi 、 drawable-hdpi 和 drawable-xhdpi )。
var beachImage = new Image { Aspect = Aspect.AspectFit };
beachImage.Source = ImageSource.FromFile("waterfront.jpg");
通过单击 Resources/Drawable 文件夹在解决方案资源管理器中添加图像,并且 select New/Existing item.Please 不要将图像复制到 Resources/Drawable 文件夹。希望对你有帮助。
如果您愿意使用代码添加图片, 试试这个
自动下载并显示图片
var webImage = new Image { Aspect = Aspect.AspectFit };
webImage.Source = ImageSource.FromUri(new Uri("https://xamarin.com/content/images/pages/forms/example-app.png"));