【小程序】image组件的13种模式

【小程序】笔记内容声明及汇总


在实际项目中,经常要面对原始图片的尺寸和设计图里的尺寸不一样的情况(尤其是原始图片高宽是未知和不固定的情况,比如动态从网络获取图片)。在这种情况下,我们必须要有所舍弃,或放弃等比例,或裁剪掉图片的一部分。接受不完美,也是编程中很重要的心态,如何选择,需要看业务上的需求。

小程序的 image 组件提供了 4 种缩放模式、9 种裁剪模式,共计 13 种模式,来支持我们的选择。

接下来我们以官网的图对这些模式做简单的说明和演示,先看下官网原图:


【小程序】image组件的13种模式_第1张图片
原图 400 x 300 pixels

4 种缩放模式

  • scaleToFill (默认值 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素。
  • aspectFit 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
    意思就是说,将图片缩放到刚好能居中放入 image 中,此时 image 可以有空白部分。
  • aspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
  • widthFix 宽度不变,高度自动变化,保持原图宽高比不变。
    意思就是以 image 的宽为准,将原图按比例缩放至正好能放入 image 中,此时image 的高度就是缩放后的图片高度,也就是说 image 不会有多余空白部分。

举个栗子,这里我使用上面的原图,做了简单的验证,代码如下:

/// wxml 布局

    
    
    



    
    


/// wxss 样式
view {
    display: flex;
    flex-direction: row;
    background-color: #000;
    width: 400px;
    height: 150px;
    margin-top: 1px;
}

view image {
    width: 133px;
    height: 133px;
    margin-left: 1px;
    background-color: #f00;
}

最后的运行效果就是这样的:

【小程序】image组件的13种模式_第2张图片
4 种缩放模式

9 种裁剪模式(只裁剪不缩放)

  • top 显示图片的顶部区域。
  • bottom 显示图片的底部区域。
  • center 显示图片的中间区域。
  • left 显示图片的左边区域。
  • right 显示图片的右边区域。
  • top left 显示图片的左上边区域。
  • top right 显示图片的右上边区域。
  • bottom left 显示图片的左下边区域。
  • bottom right 显示图片的右下边区域。

这几种裁剪模式还是很好理解的,比如假设下面每个黄色框表示一个 image 组件,当 mode 依次等于这 9 种裁剪模式时,显示的效果就是每个黄框的内容:


【小程序】image组件的13种模式_第3张图片
9种裁剪模式效果

又到了举栗子环节,我这里对前面的代码简单改了下:

/// wxml 布局

    
    
    



    
    
    



    
    
    


/// wxss 样式
view {
    display: flex;
    flex-direction: row;
    background-color: #000;
    width: 400px;
    height: 100px;
    margin-top: 1px;
}

view image {
    width: 133px;
    height: 100px;
    margin-left: 1px;
    background-color: #f00;
}

效果如下:

【小程序】image组件的13种模式_第4张图片
9 种裁剪模式效果

小结

  1. 4 种缩放模式,带有 Fill 的会填满 image,widthFix 会重新调整 image 的高度
  2. image 的默认模式是 scaleToFill。
  3. image 组件默认大小是 300px * 225px,建议自己设置大小。
  4. image 组件中二维码/小程序码图片不支持长按识别,仅在 wx.previewImage 中支持长按识别。

你可能感兴趣的:(【小程序】image组件的13种模式)