微信小程序开发之图片等比例缩放 获取屏幕尺寸图片尺寸 ...

[复制链接]
hyt_xcx手机认证 实名认证 视频认证 发表于 2017-12-20 09:59:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
微信小程序开发之图片等比例缩放 获取屏幕尺寸图片尺寸 自适应
早上在论坛上看到有人写了关于图片等比例缩放的文章,只是判断了图片宽是否大于屏幕宽.我之前在做Android的时候也会遇到图片等比例缩放的问题.应该是用图片宽高比和屏幕宽高比做判断.做个笔记.
老规矩,先上图.
1.图片高宽比小于屏幕高宽比
未标题-1.jpg

2.图片高宽比大于屏幕高宽比
未标题-1.jpg

index.wxml
  1. <!--index.wxml-->
  2. <!--图片宽大于屏幕宽-->
  3. <image style="width: {{imagewidth}}px; height: {{imageheight}}px;"  src="{{imagefirstsrc}}" bindload="imageLoad"></image>
  4. <!--图片高大于屏幕高-->
  5. <!--<image style="width: {{imagewidth}}px; height: {{imageheight}}px;"  src="{{imagesecondsrc}}" bindload="imageLoad"></image>-->
  6. <!--图片宽高大于屏幕宽高-->
  7. <!--<image style="width: {{imagewidth}}px; height: {{imageheight}}px;"  src="{{imagethirdsrc}}" bindload="imageLoad"></image>-->
复制代码
index.js
  1. //index.js
  2. //获取应用实例
  3. var imageUtil = require('../../utils/util.js');
  4. var app = getApp()
  5. Page({
  6.   data: {
  7.     imagefirstsrc: 'http://bpic.588ku.com/back_pic/00/03/85/1656205138bbe2d.png',//图片链接
  8.     imagesecondsrc: 'http://bpic.588ku.com/back_pic/04/07/63/28581203949ca9d.jpg!/fw/400/quality/90/unsharp/true/compress/true',//图片链接
  9.     imagethirdsrc:'http://img1.gtimg.com/ent/pics/hv1/13/71/2061/134034643.jpg',
  10.     imagewidth: 0,//缩放后的宽
  11.     imageheight: 0,//缩放后的高

  12.   },
  13.   onLoad: function () {
  14.   },
  15.   imageLoad: function (e) {
  16.     var imageSize = imageUtil.imageUtil(e)
  17.     this.setData({
  18.       imagewidth: imageSize.imageWidth,
  19.       imageheight: imageSize.imageHeight
  20.     })
  21.   }
  22. })
复制代码
util.js
  1. //util.js
  2. function imageUtil(e) {
  3.   var imageSize = {};
  4.   var originalWidth = e.detail.width;//图片原始宽
  5.   var originalHeight = e.detail.height;//图片原始高
  6.   var originalScale = originalHeight/originalWidth;//图片高宽比
  7.   console.log('originalWidth: ' + originalWidth)
  8.   console.log('originalHeight: ' + originalHeight)
  9.   //获取屏幕宽高
  10.   wx.getSystemInfo({
  11.     success: function (res) {
  12.       var windowWidth = res.windowWidth;
  13.       var windowHeight = res.windowHeight;
  14.       var windowscale = windowHeight/windowWidth;//屏幕高宽比
  15.       console.log('windowWidth: ' + windowWidth)
  16.       console.log('windowHeight: ' + windowHeight)
  17.       if(originalScale < windowscale){//图片高宽比小于屏幕高宽比
  18.         //图片缩放后的宽为屏幕宽
  19.          imageSize.imageWidth = windowWidth;
  20.          imageSize.imageHeight = (windowWidth * originalHeight) / originalWidth;
  21.       }else{//图片高宽比大于屏幕高宽比
  22.         //图片缩放后的高为屏幕高
  23.          imageSize.imageHeight = windowHeight;
  24.          imageSize.imageWidth = (windowHeight * originalWidth) / originalHeight;
  25.       }
  26.      
  27.     }
  28.   })
  29.   console.log('缩放后的宽: ' + imageSize.imageWidth)
  30.   console.log('缩放后的高: ' + imageSize.imageHeight)
  31.   return imageSize;
  32. }

  33. module.exports = {
  34.   imageUtil: imageUtil
  35. }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ- Archiver-手机版-小黑屋- 浩阳天社区  

Powered by Discuz! X3.2© 2001-2013 Comsenz Inc.  蜀ICP备16032957号-1