收藏
回答

调用measureText,fillText异常?

在 OPPOA11 型号PCHM10下文字不显示和字体突然加粗



function drawP (text) {
  let left = 44  // 文字距离左边的距离
  let mxwidth = 595 - 20 - left // 可以放下文字的空间
  let minNumber = parseInt(mxwidth / 14) // 由于中文所占的宽度和字体大小一样大 所有计算出一行能放下最少的文字数量
  while (text.length > minNumber){  // 文本长度是否小于最少文本  如果是则进入循环
    let minNumberL = minNumber // 临时单行文本长度
    while (context2.measureText(text.substr(0, minNumberL)).width < mxwidth - 14){  //  如果当前截取的宽度的小于最小宽度 则继续增加
      if (minNumberL < text.length) { // 判断时候超出文字长度 超出则退出
        minNumberL += 1
      } else {
        break
      }
    }
    let oneText = text.substr(0, minNumberL) // 当前单行的文字
    context2.fillText(oneText, left, top) // 画上去
    left = 20 //  取消缩进
    mxwidth = 595 - 20 - left // 重算宽度
    minNumber = parseInt(mxwidth / 14) // 重算最少个数
    top += 32 // 笔向下移动
    text = text.substr(minNumberL, text.length) // 修改原始文本
  }
  if (text.length) {
    context2.fillText(text, left, top)
    top += 32
  }
}


最后一次编辑于  2020-04-13
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容
问题标签