小程序图片右侧边缘像素缺失的解决方法(自定义图标适配)

方法一:用1张2倍图做适配。

1.通过动态设置image宽高来实现:先在data中用变量表示小图标初始宽高,并绑定到image组件上;

2.再通过wx.getSystemInfo获取手机可使用窗口宽度,那么小图标的宽度=原宽*屏宽/设计图宽,长=原长*屏宽/设计图宽,再用this.setData()修改变量。

<image class="progress-img" src="../../../imgs/transaction/01.png" bindload="imageLoad"  
style="width:{{imgwidth}}px; height:{{imgheight }}px;"></image>
Page({
  data: {
    screenWidth: 0,
    imgwidth: 0,
    imgheight: 0
  },
  onLoad: function (options) {
    var _this = this;
    wx.getSystemInfo({
      success: function (res) {
        _this.setData({
          screenWidth: res.windowWidth,
        });
      }
    }); 
  },
  imageLoad: function (e) {
    var _this = this;
    var screenW = this.data.screenWidth;
    var viewWidth = 54 * screenW / 750;
    var viewHeight = viewWidth;
    this.setData({
      imgwidth: viewWidth,
      imgheight: viewHeight
    })
  }
}

方法二:用1张2倍图做适配(类似方法一,优于方法一)

1.在app.js中获取手机可使用窗口宽度,计算出并手机可使用窗口宽度/设计图宽度的比率,添加到globalData里;ratio=widowWidth/750;

2.在image组件里添加行内样式动态计算宽高;image实际宽=设计图图片宽*ratio;

//app.js
const ratio = wx.getSystemInfoSync().windowWidth/750;
App({
  globalData:{
    ratio
  }
})
//demo.js
const app = getApp();
const globalData = app.globalData;
const ratio = globalData.ratio;
Page({
  data:{
    ratio
  }
})
<!-- demo.wxml -->
<image  src='/images/nav.png' style='width:{{50*ratio}}px;height:width:{{50*ratio}}px;'></image>

方法三:3张图片适配;把1倍屏、2倍屏、3倍屏对应的图片分别命名成text1\text2\text3

<image class="img-s text" src="../../images/text{{pixelRatio}}.png"></image>
const device = wx.getSystemInfoSync()
const pixelRatio = Math.floor(device.pixelRatio);
Page({
  data:{
    pixelRatio,
  }
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值