jjzjj

measureText

全部标签

Android:用于斜体呈现字体的 Paint 对象上的 measureText

我需要计算客户提供的所有文本的长度(以像素为单位)。问题是他们只提供了一种常规字体,而斜体样式必须由Android呈现。一个已知的Android错误是,对于斜体(呈现为斜体)字体,未正确计算TextView的宽度并且文本的末尾被剪切。你知道如何正确计算这些斜体文本的长度吗?到目前为止,我已经尝试了measureText和getTextWidths方法,但我认为该错误出在Android源代码中,因为斜体文本和普通文本的长度相同。我发现当没有斜体字体并且必须渲染时,然后在TextView源代码中,在TextPaint对象上设置了skewX参数。它的值为-0.25f。你知道这个参数是什么吗?

Android:在 4.4 中,Paint.measureText() 不向后兼容。任何解决方法?

我的应用程序能够准确测量字符串至关重要;我一直在使用Paint.measureText()来执行此操作。不幸的是,在4.4中,此方法已更改为不再返回精确值,而是返回向上舍入的值。有人知道我可以用来精确测量文本的另一种方法,或者有任何其他建议吗?Android来源:Android17returnw*mInvCompatScaling;Android18return(float)Math.ceil(w*mInvCompatScaling); 最佳答案 看起来回退到反射是恢复旧功能的唯一方法。如下所示查找私有(private)本地方法并调

HTML5 Canvas : Why does measuring text with measureText and offsetWidth() give different values?

我对offsetWidth()与measureText进行了基准测试,我得到了截然不同的值。他们不应该是一样的吗?它们为什么不同?这是下面的jsfiddle和原始代码:http://jsfiddle.net/WhGk7/2/YourbrowserdoesnotsupporttheHTML5canvastag.textAlign=startvarc=document.getElementById("myCanvas");varctx=c.getContext("2d");//Createaredlineinposition150ctx.strokeStyle="red";ctx.move

HTML5 Canvas : Why does measuring text with measureText and offsetWidth() give different values?

我对offsetWidth()与measureText进行了基准测试,我得到了截然不同的值。他们不应该是一样的吗?它们为什么不同?这是下面的jsfiddle和原始代码:http://jsfiddle.net/WhGk7/2/YourbrowserdoesnotsupporttheHTML5canvastag.textAlign=startvarc=document.getElementById("myCanvas");varctx=c.getContext("2d");//Createaredlineinposition150ctx.strokeStyle="red";ctx.move

Android:measureText() 根据缩放像素返回像素

所以我使用Paint的measureText()方法来测量一段文本的宽度,但是我想根据一定的文本大小来测量文本。假设我想获得一个文本段的宽度,当它占据某个TextView时,它将是20个缩放像素。我尝试了以下方法:Paintpaint=newPaint();paint.setTextSize(20);paint.measureText("sampletext");但是,它似乎不起作用。我相信它会返回相对于较小文本大小的宽度。我觉得我错过了一些会让我扇耳光并大喊大叫的东西。 最佳答案 你需要像这样得到密度乘数:finalfloatde

Android:measureText() 根据缩放像素返回像素

所以我使用Paint的measureText()方法来测量一段文本的宽度,但是我想根据一定的文本大小来测量文本。假设我想获得一个文本段的宽度,当它占据某个TextView时,它将是20个缩放像素。我尝试了以下方法:Paintpaint=newPaint();paint.setTextSize(20);paint.measureText("sampletext");但是,它似乎不起作用。我相信它会返回相对于较小文本大小的宽度。我觉得我错过了一些会让我扇耳光并大喊大叫的东西。 最佳答案 你需要像这样得到密度乘数:finalfloatde

阿拉伯语的 Android TextView measureText

Paint.measureText对于阿拉伯语文本不准确。这是我尝试过的:我有一个TextViewtv1。tv1.getWidth();给出480,没问题。tv1.getPaint().measureText("المؤلف:عبدالرحمنابنأبيبوأوالفضلالسيوطي");给出502,它比屏幕宽度大。不好的结果,因为文本占据了大约80%的线宽!结果应该在400左右。谢谢。 最佳答案 我今天遇到了这个问题。一切都按预期工作,你应该知道当你的文本包含像َُِّ字符这样的阿拉伯语元音时,它们都在宽度中作为单独的字符计算

javascript - Chrome canvas 2d context measureText 给我奇怪的结果

这是我的问题的精简版letcanvas=document.createElement('canvas')letctx=canvas.getContext('2d')ctx.font='11ptCalibri'ctx.fillStyle='#000000'lettemp=ctx.fontconsole.log(ctx.font)console.log(ctx.measureText('M').width)ctx.font='bold'+ctx.fontconsole.log(ctx.font)console.log(ctx.measureText('M').width)ctx.font=

Android Paint : . measureText() 与 .getTextBounds()

我正在使用Paint.getTextBounds()测量文本,因为我对获取要呈现的文本的高度和宽度感兴趣。但是,实际呈现的文本总是比.width()宽一点。的RectgetTextBounds()填写的信息.令我惊讶的是,我测试了.measureText(),并发现它返回一个不同的(更高的)值。我试了一下,发现是对的。为什么他们报告不同的宽度?如何正确获取高度和宽度?我的意思是,我可以使用.measureText(),但是我不知道我是否应该信任.height()由getTextBounds()返回.根据要求,这里是重现问题的最少代码:finalStringsomeText="Hello

Android Paint : . measureText() 与 .getTextBounds()

我正在使用Paint.getTextBounds()测量文本,因为我对获取要呈现的文本的高度和宽度感兴趣。但是,实际呈现的文本总是比.width()宽一点。的RectgetTextBounds()填写的信息.令我惊讶的是,我测试了.measureText(),并发现它返回一个不同的(更高的)值。我试了一下,发现是对的。为什么他们报告不同的宽度?如何正确获取高度和宽度?我的意思是,我可以使用.measureText(),但是我不知道我是否应该信任.height()由getTextBounds()返回.根据要求,这里是重现问题的最少代码:finalStringsomeText="Hello
12