wx-charts自适应屏幕大小

最近一直在用wx-charts作为小程序的图标渲染工具,但是一个问题是wx-charts中的高度(height)、宽度(width)的单位是px,在不同设备上可能会出现大小比例不一致的问题。下面是我的解决方案:

解决方案

  1. .js文件渲染图表的位置,添加如下代码:
var windowWidth = 375;
try {
  var res = wx.getSystemInfoSync();
  windowWidth = res.windowWidth;
} catch (e){
  console.error('getSystemInfoSync failed!');
}

设置windowWidth的初始值是为了在无法获取屏幕宽度的情况下,程序仍能继续运行,保证了程序的鲁棒性。

  1. 计算几个量:
设已知屏幕宽度为p,在该已知屏幕上显示的图表宽度为m,高度为n;
设任意未知屏幕宽度为windowWidth,在该屏幕下图标的宽度为w,高度为h。则:
由windowWidth/w = p/m,得w = (windowWidth*m)/p;
由m/n = w/h和上式结果,得h = (windowWidth*n)/p;
  1. 将上式计算得出的w和h代入:
   columnChart = new wxCharts({
     	//...其他参数
       width: (windowWidth*[在某一指定屏幕上的宽度])/p,
       height:(windowWidth*[在某一指定屏幕上的高度])/p,
   });

结果图

  1. iPhone 8 Plus大小

  1. iPhone 8大小:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值