新手求助:如何在Xamarin.Forms中添加图片与图标?
嘿,作为刚入坑Xamarin.Forms的新手,太懂你查资料时被一堆复杂内容绕晕的感觉了!我给你整理了几个最实用、步骤清晰的添加图标/图片的方法,看完就能上手:
一、添加界面展示用的普通图片
1. 先把图片放到对应平台的资源文件夹
不同平台的资源存放位置有讲究,别放错了:
- Android:把图片(比如
my_photo.png)放到Resources/drawable文件夹,注意文件名必须全小写,不能有空格或特殊字符,如果有多分辨率版本,对应放到mdpi/hdpi/xhdpi等子文件夹里 - iOS:放到项目的
Resources文件夹,右键图片设置生成操作为BundleResource - UWP:放到
Assets文件夹,设置生成操作为Content
2. 在XAML里引用图片(最常用)
直接用Image控件就能快速展示,代码很简单:
<!-- 基础用法 --> <Image Source="my_photo.png" WidthRequest="120" HeightRequest="120" /> <!-- 可以加圆角、拉伸模式等属性 --> <Image Source="my_photo.png" WidthRequest="120" HeightRequest="120" Aspect="AspectFill" CornerRadius="60" />
Xamarin.Forms会自动识别不同平台的分辨率适配图,不用手动加@2x或者hdpi这类后缀。
3. 在C#代码里动态设置图片
如果需要根据逻辑动态切换图片,代码里这么写:
// 创建Image控件 var profileImage = new Image { Source = ImageSource.FromFile("my_photo.png"), WidthRequest = 120, HeightRequest = 120, CornerRadius = 60 }; // 把控件加到布局里(比如StackLayout) myStackLayout.Children.Add(profileImage);
二、设置应用的桌面图标(App Icon)
如果是要给App设置桌面显示的图标,步骤也不复杂:
1. Android平台
- 准备多分辨率的图标(比如48x48、72x72、96x96等),分别放到
Resources/mipmap-mdpi、mipmap-hdpi等对应分辨率的文件夹 - 打开
AndroidManifest.xml,确保application标签里的android:icon指向你的图标:
<application android:label="MyXamarinApp" android:icon="@mipmap/ic_launcher">
2. iOS平台
- 准备符合苹果规范的图标(包括1024x1024的App Store图标,以及各种尺寸的桌面图标)
- 打开
Info.plist,找到「App Icons and Launch Images」,选择「Asset Catalog」,然后把对应尺寸的图标拖到Asset Catalog的App Icon各个占位框里就行
3. UWP平台
- 准备不同尺寸的图标放到
Assets文件夹 - 打开
Package.appxmanifest,切换到「Visual Assets」标签,按照提示设置不同场景的图标,系统会自动适配
几个避坑小Tips
- 图片文件名一定要全小写、无特殊字符,Android对这个要求特别严,写错了就会不显示
- 如果是把图片放在共享项目里,要设置生成操作为
EmbeddedResource,然后用ImageSource.FromResource("你的项目命名空间.文件夹名.图片名.png")引用,不过这种方式不如平台资源文件夹常用 - 遇到图片不显示的情况,先清理项目再重新编译,大概率是缓存问题
内容的提问来源于stack exchange,提问作者user8834153
相关产品推荐
相关产品推荐

