微信小程序 动态的设置图片的高度和宽度详解及实例代码
程序员文章站
2023-11-27 22:30:58
微信小程序图片等比例缩放 动态的获取图片的高度和宽度 动态的设置图片的高度和宽度
前言:
在小程序布局中,如果图片不是固定高度和高度,但image设置的是固定的高...
微信小程序图片等比例缩放 动态的获取图片的高度和宽度 动态的设置图片的高度和宽度
前言:
在小程序布局中,如果图片不是固定高度和高度,但image设置的是固定的高度和宽度,这时候原始图片相对image设置的固定高度和宽度不是等比例大小,那么这张图片就会变形,变的不清晰。这时就可以使用下面的等比例缩放的方式缩放图片,让图片不变形。或者通过image的bindload方法动态的获取图片的高度和宽度,动态的设置图片的高度和宽度,是图片布局的高度和宽度和原始图片的高度和宽度相等。
1.图片等比例缩放工具
//util.js class util{ /*** * 按照显示图片的宽等比例缩放得到显示图片的高 * @params originalwidth 原始图片的宽 * @params originalheight 原始图片的高 * @params imagewidth 显示图片的宽,如果不传就使用屏幕的宽 * 返回图片的宽高对象 ***/ static imagezoomheightutil(originalwidth,originalheight,imagewidth){ let imagesize = {}; if(imagewidth){ imagesize.imagewidth = imagewidth; imagesize.imageheight = (imagewidth * originalheight) / originalwidth; }else{//如果没有传imagewidth,使用屏幕的宽 wx.getsysteminfo({ success: function (res) { imagewidth = res.windowwidth; imagesize.imagewidth = imagewidth; imagesize.imageheight = (imagewidth * originalheight) / originalwidth; } }); } return imagesize; } /*** * 按照显示图片的高等比例缩放得到显示图片的宽 * @params originalwidth 原始图片的宽 * @params originalheight 原始图片的高 * @params imageheight 显示图片的高,如果不传就使用屏幕的高 * 返回图片的宽高对象 ***/ static imagezoomwidthutil(originalwidth,originalheight,imageheight){ let imagesize = {}; if(imageheight){ imagesize.imagewidth = (imageheight *originalwidth) / originalheight; imagesize.imageheight = imageheight; }else{//如果没有传imageheight,使用屏幕的高 wx.getsysteminfo({ success: function (res) { imageheight = res.windowheight; imagesize.imagewidth = (imageheight *originalwidth) / originalheight; imagesize.imageheight = imageheight; } }); } return imagesize; } } export default util;
2.使用image组件加载图片,通过bindload动态的获取图片的高度和宽度,动态的设置图片的高度和宽度 index.wxml (../pro.png是本地图片)
<image bindload="imageload" style="width:{{imagewidth}}px;;height:{{imageheight}}px;" src="../pro.png"/>
index.js
import util from '../common/util'; page({ data:{ imagewidth:0, imageheight:0 }, imageload: function (e) { //获取图片的原始宽度和高度 let originalwidth = e.detail.width; let originalheight = e.detail.height; //let imagesize = util.imagezoomheightutil(originalwidth,originalheight); //let imagesize = util.imagezoomheightutil(originalwidth,originalheight,375); let imagesize = util.imagezoomwidthutil(originalwidth,originalheight,145); this.setdata({imagewidth:imagesize.imagewidth,imageheight:imagesize.imageheight}); } })
微信小程序图片等比例缩放 动态的获取图片的高度和宽度 动态的设置图片的高度和宽度
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!