我想以“我的文字”为中心!无论字符串的长度如何......随着文本的长度变长,x坐标需要更少。
如何获取字符串的x长度?
<html>
<head>
<script>
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var imageObj = new Image();
imageObj.onload = function(){
context.drawImage(imageObj, 0, 0);
context.font = "12pt Arial";
context.fillText("My TEXT!", 20, 20);
};
imageObj.src = "http://images.google.com/intl/en_ALL/images/srpr/logo11w.png";
};
</script>
</head>
<body>
<canvas width="282px" height="177px" id="myCanvas"></canvas>
</body>
</html>
答案 0 :(得分:1)
只需将其添加到您的代码中:
imageObj.onload = function(){
context.drawImage(imageObj, 0, 0);
context.font = "12pt Arial";
/// set text alignment to center
context.textAlign = 'center';
/// draw from center
context.fillText("My TEXT!", canvas.width * 0.5, 20);
};
如果您需要获取x坐标本身,您需要根据文本的宽度(在设置字体后)计算它:
var width = context.measureText(myText).width;
var x = (canvas.width - width) * 0.5;
答案 1 :(得分:1)
尝试设置文字对齐方式。
context.textAlign = "center";
context.fillText("My LONGGGGG TEXT!", (canvas.width)/2, 20);
答案 2 :(得分:0)
这应该是你要找的。 http://www.html5canvastutorials.com/tutorials/html5-canvas-text-align/
画布上有一个textAlign
属性,您可以设置为“居中”。然后在画布的正中间开始填充文本。
编辑 - 这是一个小提琴http://jsfiddle.net/mlienau/2MnnC/