美文网首页
2021-11-21、image组件的详细说明

2021-11-21、image组件的详细说明

作者: 疋瓞 | 来源:发表于2021-11-21 10:51 被阅读0次

1、案例描述

使用image组件,来展示所有image的mode(显示模式)。


示例图片.jpeg
示例图片.jpeg

2、实现过程

2.1、代码展示

  • wxml
<!--pages/kj/demo111-template/index.wxml-->
<view class="box">
  <view class="title">图片展示</view>
  <view class="image_mode">列表的四种缩放模式</view>
  <block wx:for="{{image_mode_size_change}}" wx:key="*this">
    <view>{{index}}:{{item}}</view>
    <view class="image_setUp">
      <image mode="{{index}}" src="{{source1}}"></image>
    </view>
    ============
  </block>

  <view class="image_mode">列表的九种裁剪模式</view>
  <text>原图:</text>
  <view class="image_setUp">
    <image src="{{source2}}"></image>
  </view>
  <block wx:for="{{image_mode_size_cutting}}" wx:key="*this">
    <view>{{item.mode}}:{{item.interpret}}</view>
    <view class="image_setUp">
      <image mode="{{item.mode}}" src="{{source2}}"></image>
    </view>
    ============
  </block>
</view>
  • wxss
/* pages/kj/demo111-template/index.wxss */
.image_mode{
    text-align: center;
    size: 15px;
    color: black;
    font-weight: bold;
    margin: 5px 0px;
}
.image_setUp{
    text-align: center;
    margin: 5px 0px;
}
image{
    height: 200px;
    width: 200px;
    background-color: rgb(17, 10, 10);
}
  • js
// pages/kj/demo111-template/index.js

var image_mode_size_change={
  scaleToFill:'不保持纵横比缩放图片,使图片的高度完全拉伸到填满image元素',
  aspectFit:'保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整的将图片显示出来',
  aspectFill:'保持纵横比缩放图片,只保证图片的短边能完全显示出来。即图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取',
  widthFix:'宽度不变,高度自动变化,保持原图宽高比不变'
};
var source1 = "https://img.haomeiwen.com/i14216764/979eb2d7930bad9b.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240";
var image_mode_size_cutting=[
{
    mode : 'top',
    interpret : '不缩放,只显示图片顶部'
},
{
  mode : 'bottom',
  interpret : '不缩放,只显示图片底部'
},
{
  mode : 'center',
  interpret : '不缩放,只显示图片中间'
},
{
  mode : 'left',
  interpret : '不缩放,只显示图片左边'
},
{
  mode : 'right',
  interpret : '不缩放,只显示图片右边'
},
{
  mode : 'top left',
  interpret : '不缩放,只显示图片左上'
},
{
  mode : 'top right',
  interpret : '不缩放,只显示图片右上'
},
{
  mode : 'bottom left',
  interpret : '不缩放,只显示图片左下'
},
{
  mode : 'bottom right',
  interpret : '不缩放,只显示图片右下'
}
];
var source2 = "https://img.haomeiwen.com/i14216764/f3704641090458b4.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240";
Page({
  data: {
    source1 : source1,
    source2 : source2,
    image_mode_size_change : image_mode_size_change,
    image_mode_size_cutting : image_mode_size_cutting
  }
 
  
})

2.2、结果展示

结果1.png
结果2.png

3、知识汇总

知识要点.png image组件.png image组件显示模式.png image组件的四种缩放模式.png image组件的九种裁剪模式.png

4、踩坑说明

  • 再循环列表中表示单元素数列,index表示索引下标,item表示索引元素,但是由对象元素构成的数组在js文件中怎么表示,在wxml中怎么表示?(大坑!见文章“列表渲染”)

在js中表示对象

//错误的对象定义方法:
var image_mode_size_change=[
  {scaleToFill:'不保持纵横比缩放图片,使图片的高度完全拉伸到填满image元素'},
  {aspectFit:'保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整的将图片显示出来'},
  {aspectFill:'保持纵横比缩放图片,只保证图片的短边能完全显示出来。即图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取'},
  {widthFix:'宽度不变,高度自动变化,保持原图宽高比不变'}
]
//修改后的对象定义方法:
var image_mode_size_change={
  scaleToFill:'不保持纵横比缩放图片,使图片的高度完全拉伸到填满image元素',
  aspectFit:'保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整的将图片显示出来',
  aspectFill:'保持纵横比缩放图片,只保证图片的短边能完全显示出来。即图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取',
  widthFix:'宽度不变,高度自动变化,保持原图宽高比不变'
}

//总结:如何在js中定义对象
var 对象名{
  key1 : value1,
  key2 : value2,
  key3 : value3
}

在wxml中调用对象

//错误的调用方法:
<block wx:for="{{image_mode_size_change}}" wx:key="*this">
    <view>{{item.key}}:{{item.value}}</view>
    <view class="image_size">
      <image mode="{{item.key}}" src="{{source}}"></image>
    </view>
  </block>
//修改后的调用方法:
<block wx:for="{{image_mode_size_change}}" wx:key="*this">
    <view>{{index}}:{{item}}</view>
    <view class="image_size">
      <image mode="{{item.key}}" src="{{source}}"></image>
    </view>
  </block>

//总结:如何在wxml中调用对象
在wxml中对象的key用index调用,对象的value用item调用

——————————————————————

  • 关于使用列表的方式定义多个对象的方案是否可行:答案是可行的,例如案例中的展示裁剪模式的时候,就用到了列表中定义对象作为列表元素的方法
//js列表中定义对象作为元素的方法(其中key1和key2是固定的,value1和value2是变化的)
var 列表名=[
{
key1 : value1,
key2 : value2,
},
{
key1 : value1,
key2 : value2,
},
{
key1 : value1,
key2 : value2,
}
]
//wxml中调用的方法:
使用“item.key”(注意key是明确的对象中键值),来调用value。

——————————————————————

  • 图片显示混乱:


    错误结果.png

wxml:

<view class="image_setUp">
      <image mode="{{index}}" src="{{source}}"></image>
</view>

wxss:

//问题代码:
.image_setUp{
    height: 200px;
    width: 200px;
    background-color: rgb(184, 177, 177);
}
//修改后的代码:
.image_setUp{
    text-align: center;
    margin: 5px 0px;
}
image{
    height: 200px;
    width: 200px;
    background-color: rgb(17, 10, 10);
}

问题总结:在给图片设置大小的时候,在外层设置是没有用的,应该直接设置到图片自身。

相关文章

  • 2021-11-21、image组件的详细说明

    1、案例描述 使用image组件,来展示所有image的mode(显示模式)。 2、实现过程 2.1、代码展示 w...

  • 微信小程序实例:image组件的binderror事件处理

    微信公众平台关于image组件的讲解都挺详细的,至于在binderror错误事件处理上并没有详细说明。那么如果我们...

  • Flutter 06 - Image 组件详解

    一、基本介绍 图片组件是显示图像的组件,Image 组件有很多构造函数 构造函数说明Image.asset(......

  • react生命周期函数

    组件的详细说明 通过Reac.createClass({...})创建组件的时候,应该有一个render()方法,...

  • 正则表达式的简单使用

    装载内容说明:纯属个人记录,查看详细内容,请到原文链接1原文链接2 元字符image.png 重复限定符image...

  • JMeter 参数化

    新建 CSV Data Set Config csv 数据配置组件选项详细说明: 名称: 组件名称,有业务意义就可...

  • React Native基础之Image

    React Native基础之Image Image组件 在React Native中,Image组件是用来...

  • React-Native之Image组件

    获取屏幕尺寸 Image组件 导入Image组件库import { Image} from 'react-nat...

  • Jetpack梳理

    它是一套组件库。(说明它是由许多个不同的组件库构成,并不是一个单一的组件库)image.png Jetpack 一...

  • React Native之React整理(二)

    本篇为《React Native之React整理》的第二篇。本篇将从组件(Component)的详细说明、组件的生...

网友评论

      本文标题:2021-11-21、image组件的详细说明

      本文链接:https://www.haomeiwen.com/subject/oayptrtx.html