微信小程序 解决圆形头像显示图片不完全问题

7 篇文章 0 订阅
7 篇文章 0 订阅

最近在做微信小程序,遇到这样一个难题,绘制一个圆形的头像,但是有的图片会因为宽度大于高度而致使图片在圆形区域内显示不全,为解决这个问题,我采用了以下办法,现贴出代码共享给大家,大家如果有更好的解决方案也可以给我留言哦~

XML:
  <view style="width:130rpx;height:130rpx;border-radius:50%;overflow:hidden;text-align:center;display:flex;justify-content: center; align-items: center">
   <image src="{{headImgUrl}}"  style="width:70px;height:{{txHeight}}px" bindload='imageLoad2'></image>
 </view>

JS:
  imageLoad2: function (e) {
     var imgwidth = e.detail.width
     var  imgheight = e.detail.height
      var ratio = imgwidth / imgheight
    var viewHeight = 70/ ratio;
    if (viewHeight < 70){
        this.setData({
          txHeight: 70,
        })
      }else{
        this.setData({
          txHeight: viewHeight,
        })
      }
 
  }
 

思路总结:

   给图片设置固定的宽度后,根据宽和高的比例进行缩放计算出正常缩放下的高度,如果改高度小于设置的高度,就让要显示的他高度显示为设置的高度,否则就正常显示缩放后的高度。特意把设置的固定图片宽度设置一个大于外部圆框的宽度数值,且让图片居中显示,防止漏出图片边缘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值