- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
documentation对于 Paint.breakText
说
breakText
int breakText (CharSequence text,
int start,
int end,
boolean measureForwards,
float maxWidth,
float[] measuredWidth)Measure the text, stopping early if the measured width exceeds maxWidth. Return the number of chars that were measured, and if measuredWidth is not null, return in it the actual width measured.
Returns
int
The number of chars that were measured. Will always be <= abs(end - start).
不清楚返回的字符数是否包括超过maxWidth
的字符数因为该字符可能是在确定总测量宽度超过 maxWidth
之前测量的.
也就是说,如果我的红线代表maxWidth
, 它会包括 o
的 World
在下图中?
我在下面回答我的问题作为 self 回答。
最佳答案
不,breakText
不包含使其超过maxWidth
的字符。
我们可以通过以下代码看到这一点。
String text = "Hello World";
Paint paint = new Paint();
paint.setTextSize(100);
// Measure the substrings individually
int length = text.length();
for (int i = 1; i <= length; i++) {
float totalWidth = paint.measureText(text, 0, i);
Log.i("TAG", i + ", totalWidth of " + text.substring(0, i) + ": " + totalWidth);
}
// compare these to breakText
float[] measuredWidth = new float[1];
float maxWidth = 360; // halfway through the "o" of "World"
int countedChars = paint.breakText(text, 0, length, true, maxWidth, measuredWidth);
Log.i("TAG", "countedChars: " + countedChars + " (\"" + text.substring(0, countedChars) + "\")");
Log.i("TAG", "measuredWidth: " + measuredWidth[0]);
// 1, totalWidth of H: 70.0
// 2, totalWidth of He: 123.0
// 3, totalWidth of Hel: 148.0
// 4, totalWidth of Hell: 173.0
// 5, totalWidth of Hello: 230.0
// 6, totalWidth of Hello : 255.0
// 7, totalWidth of Hello W: 344.0
// 8, totalWidth of Hello Wo: 399.0
// 9, totalWidth of Hello Wor: 433.0
//10, totalWidth of Hello Worl: 458.0
//11, totalWidth of Hello World: 515.0
// countedChars: 7 ("Hello W")
// measuredWidth: 342.0
为什么 measureText
给出的值 (344) 与 breakText
(342) 给出的值略有不同是另一个问题。我猜这可能与 W
和 o
之间的字距调整有关。
关于android - Paint.breakText 是否包含 maxWidth 处的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45253574/
我正在尝试以编程方式创建位图,但发现绘制带阴影的 Rect 会忽略传入的颜色 arg。我已将事情简化为这种情况 - 代码只是绘制了一个旋转的蓝色方 block ,它应该有一个灰色的影子,但影子总是蓝色
我可以轻松使用为 Paint.NET 制作的插件吗?在我自己的 C# 应用程序中(假设我遵守插件许可)? 我的目标是使某些效果自动化,Paint.NET 似乎有很多。 最佳答案 Paint.NET 以
我很好奇这些方法的作用以及如何使用它们,因为除了 Javadocs 中的单句描述之外似乎没有任何细节: setStrokeJoin setStrokeMiter 有人有一些示例代码或好的描述吗? 最佳
这个问题在这里已经有了答案: Error printing image in PyQt (1 个回答) PyQt print QWidget (1 个回答) 关闭 2 年前。 我试图在 QPixmap
我对这个感到困惑。我尝试按照一些人的建议将 QPainter 移动到它自己的 def ,但它给出了完全相同的错误。这是我创建的 def。 def PaintButtons(self): sol
我遇到这个问题,当我执行 repaint() 时,类中的 paint() 或 update() 方法没有被调用。这是代码: public class BufferedDisplay extends C
我一直在阅读关于 chrome 中的关键渲染路径 here和 here .我对这些资源的理解是“合成”步骤发生在主线程之外,并且依赖于之前的“绘制”步骤,该步骤生成要合成在一起的光栅化图层。 但是,当
在我的应用程序中,用户之一有时会出错并且应用程序崩溃。用户向我发送日志: java.lang.IndexOutOfBoundsException at android.graphics.Paint.
我正在编写简单的画图程序,您可以在其中通过拖动鼠标来绘制任何您想要的东西。您可以更改画笔的颜色和大小,但在这个版本中,当我更改画笔的颜色或大小时,当我通过拖动鼠标再次开始绘制时,之前绘制的所有内容也会
我已经实现了可点击的 Recyclerview 项并设置了 android:background="?selectableItemBackground" 以获得点击效果,但是在检查代码时我发现了这个
这是我使用 firemonkey + Delphi XE2 制作的 Delphi 应用程序的示例。 如您所见,您可以使用 Firemonkey 中的视觉样式“样式书”来自定义窗口框架内大多数内容的外观
我想请教您如何在绘画应用程序中实现自由形式的绘画。鉴于命令对象将包含单击、任意拖动和释放,这将如何必然存储在命令中并绘制到位图上下文中? 对于初学者来说,数据是否只是放在一个大列表中的 mousemo
似乎显而易见的答案是否定的,但我还是想找出答案。 如果我的面板中有很多复杂的组件,需要一段时间才能加载,然后在顶部有另一个非常基本的面板,完全覆盖它,背景面板是否仍会在 paint 方法中绘制? 最佳
首先是code: import 'package:flutter/cupertino.dart'; class Test extends StatelessWidget { @override
import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.Ac
我的java代码有问题。我想做一个画家程序,但每当我选择一个形状并绘制它时之前绘制的所有形状都变得与此形状相同。这是代码。我知道问题出在 paintComponent 中的 for 语句,但我可以用什
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
这是代码,正方形会渲染但不会移动,即使它应该渲染每个循环。问题似乎出在 Core 类的 run() 中 package com.game; import java.awt.*; import
这里的问题是调用了paintComponent()方法,它获取了fillRect()所需的变量,但在按下按键后实际上并没有绘制任何东西。我不明白为什么,因为每次按下 D 键时 mato.getPosi
程序未在屏幕上显示我的 Oval。我没有收到任何错误,所以我有点停滞不前。我查看了我的另一个程序,我几乎逐字编写了它。 游戏.java public class Game extends JPanel
我是一名优秀的程序员,十分优秀!