一个App怎么少得了各种萌萌的色彩呢,XamarinForms提供了BoxView控件和Image控件,用于为App“染色”。
BoxView控件的主要作用是显示一个矩形的色块,大小及颜色均可自由设置,官方给出的说明是默认40*40的大小,颜色透明,色块的形状无法改变。在制作页面时,通过它来设置一个无色或者彩色的区域,用于分隔控件。
BoxView的使用很简单,通过HeightRequest设置其高度,WidthRequest设置其宽度;BackgroundColor设置其背景色。另外还可以通过Rotation设置其旋转角度,其数值从0到360;Opacity设置其不透明度,其数值介于0-1之间,0表示透明,1表示不透明。
下面这段代码表示一个位于屏幕正中央,宽高均为80,透明度0.5,旋转50度的天蓝色正方形色块。
Image控件主要用于显示图片,在App中,很多地方都会有小图标,均可使用Image控件实现。Image可以显示网络中的图片也可以显示本地的图片。如果是App中的小图标,那需要将图标保存在本地;如果需要查看网络图片,那只需知道图片的链接即可。
Image的图片来源通过Source属性指定,它可以是一个本地图片的图片名称(可带文件格式也可以不带),也可以是一个图片的url;Image控件通过Rotation旋转角度;通过Opacity控制不透明度;通过Scale控制缩放比例,Aspect属性可以设置图片的填充方式,有Fill,AspectFill和AspectFit三个取值,其中Fill表示完全的拉长图片;AspectFill表示以短边缩放图片;AspectFit表示以长边缩放图片。因此Fill和AspectFill都有可能使图片变形或者截断显示不全。另外像宽度、高度、位置、背景色等公共属性,均可以自由设置。
先找一个图片,好像支持挺多格式的,注意不要与现有的重名就好,保存在安卓子项目的Resources中drawable下,确保其属性-生成操作是AndroidResouce,否则会无法显示图片。
下面的代码在屏幕中央显示了一张旋转了10度,放大两倍的本地图片,这里只需提供文件名即可,亦或者通过注释掉的代码显示网络中的图片。
Image控件也可以通过C#代码实现,比如下面的代码达到了上图中同样的效果:
注意:FromFile和FromResource是不同的,FromFile的图片来源是安卓子项目,而FromResource的图片来源是跨平台的项目,Source通过命名空间.文件夹名.图片名.格式名的方式来指定,而且在跨平台的图片属性中,生成操作必须要是嵌入的资源才能够显示图片,否则是无法显示的。
一段时间没看官网了,才发现Image增加了一个新的功能,它能够把从网上浏览的图片存为缓存,并且设置缓存有效期。这样就不需要每次发送请求来显示图片,直接从缓存中读取即可。比如一个名字为myImage的控件,Uri属性设置了它的图片来源,CachingEnabled设置为true时启用缓存,CacheValidity设置有效时间,比如下图的代码设置了5天的有效期。
Image控件使用频率比较高,但是用法不难,很轻松就掌握了。感兴趣的小伙伴可以关注一波哦~~~另外有不对的地方还请各位多多指教喽~~