问题描述
最近h5项目有个绘制圆形进度条的需求,用原生canvas绘制后发现在手机上显示比较模糊,效果不是很好,于是查了一下资料发现在canvas context中也存在一个类似浏览器属性devicePixelRatio的属性,叫作webkitBackingStorePixelRatio,该属性的值决定了浏览器在渲染canvas之前会用几个像素来来存储画布信息,如果手机屏幕的devicePixelRatio值越高,就会导致canvas绘制的图案要用更多的像素去绘制,跟图片放大就会变得模糊类似,所以我们需要根据不同的屏幕渲染比缩放canvas绘制的大小,即改变canvas的宽度跟高度。
第一种解决方案
简单粗暴,直接使用github上的一个库即可hidpi-canvas-polyfill1
2
3
4...
<script src=".../dist/hidpi-canvas.min.js"></script>
<script src=".../your-canvas-stuff.js"></script>
...
更多 >>