问题标签 [staticlayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
432 浏览

android - 在android的StaticLayout中使一些文本加粗

有什么方法可以使静态布局的某些文本变为粗体?我正在尝试打印一份政府文件,以便我使用 StaticLayout 使用以下代码在Canvas.

WheregetText()方法返回我要打印的字符串,如下所示。

所以在这里我只想让医院名称加粗。

0 投票
0 回答
258 浏览

android - TextSize 和 LineSpace 如何影响 ImageSpan

我想用 StaticLayout 测量 ImageSpan。为此,我使用如下简单代码:

txt 是一个 TextView 和 lineSpace 只是一个指示 txt 行空间的变量。

和getImageSpannable:

当我将 ImageSpan 添加到 SpannableStringBuilder(仅此而已)时,TextSize 似乎不会影响 ImageSpan。我的意思是当我调用 layout.getLineBottom(0) 时,无论 TextSize 是什么,它总是返回相同的值。但是行距会影响。

但是当我在 ImageSpan 到 SpannableStringBuilder 之后添加“\n”和另一个字符串(如“sample”)时,TextSize 也会影响 ImageSpan 的高度。在这种情况下,ImageSpan 的上边距等于:(lineSpace + TextSize/2)。

有人可以解释 ImageSpan 的确切行为,因为我必须单独测量 ImageSpan 并连接到结果。

我应该如何测量 ImageSpan 以便 ImageSpan 的高度在组合到其他字符串甚至其他 ImageSpan 后不会改变?

0 投票
1 回答
974 浏览

android - LineSpace 如何影响一行文本中的静态布局高度

考虑这个简单的例子:

我有这样的单行文本:“你好”

我想用 StaticLayout 测量这个文本。所以我写了这样的东西:

在上面的代码中,我在 for 循环中更改了 lineSpace 变量,并且每次记录布局的高度:

当我在具有 android M 布局的设备上运行此代码时,高度不会随着 lineSpace 的多个值而改变。但在较低的 android 版本中,布局的高度分别随行距而变化。

尽管当您的文本超过一行时,StaticLayout 会考虑两行之间的行距。但似乎 Android M 不考虑最后一行的行空间,但较低的 Android 版本会考虑。

我的问题是:在什么版本的 android StaticLayout 考虑最后一行的行空间之后?我可以写这样的东西吗:

0 投票
2 回答
26256 浏览

android - Android中如何使用StaticLayout?

我需要建立自己的自定义TextView,所以我一直在学习如何StaticLayout在画布上绘制文本。这比Canvas.drawText()直接使用更好,或者文档说。但是,该文档没有给出如何做到这一点的任何示例。只有一个模糊的参考StaticLayout.Builder是更新的方式来做到这一点。

我在这里找到了一个例子,但它似乎有点过时了。

我终于工作了,但如何做到这一点,所以我在下面添加我的解释。

0 投票
1 回答
4458 浏览

android - 什么是 Android 的领先优势?

前导边距是什么意思,如

文档LeadingMarginSpan

影响前导边距的段落样式。单个段落可以有多个前导边距跨度;它们将按顺序呈现,每个都将其边距添加到它之前的边距。对于从右到左的段落中的行,前导边距位于右侧。

但它并没有真正说明什么是领先优势。

它就像段落第一行的制表符缩进吗?还是整个段落缩进的地方?我认为它是 /lidɪŋ/ 而不是/lɛdɪŋ/ 就像在行之间的空间中一样

我想知道的原因是我正在尝试使用 StaticLayout 制作自己的 TextView。我指的是 Layout 和 StaticLayout源代码的想法。我正在尝试删除所有不必要的部分,但我不知道这是什么。

这里有一些 SO 问题也询问领先边距,但提问者似乎知道这意味着什么。

一张图片真的很有帮助,但不是绝对必要的。

0 投票
1 回答
862 浏览

android - Android Layout:getLineBaseline、getLineDescent、getLineAscent、getLineBottom、getLineTop的含义

以下方法Layout(包括StaticLayoutDynamicLayoutBoringLayout)的文档非常少。

这些方法返回的具体数字是多少?它们是正常的字体度量值还是布局上的位置?

我做了一个测试项目来找出答案,所以我在问答风格下发布了我的答案。

0 投票
0 回答
311 浏览

android - StaticLayout 花费太多时间

我使用 StaticLayout 对我的 Html 文本进行分页。但是当我在 StaticLayout 中使用大文本时,构建过程非常繁重并且需要很多时间。它只是发生在 android 5 以下的 androids 我该如何解决这个问题?这是我的代码

我在这里用过

我调试我的代码,我知道这部分代码是我的问题:

0 投票
0 回答
79 浏览

android - 如果超过 50 行,AppWidget ListView 中的 StaticLayout 会显示不可见的文本

我有一个AppWidget RemoteView带有ListView一个孩子ImageView的带有自定义字体文本的。

这是我的代码:

它工作正常。但是,每次文本长到超过 50 / 60 行时,它都会显示为空,但我可以滚动列表视图(因此 staticLayout 不为空,因为位图的高度不为 0)。

另一个重要的事情是以下行为:当我开始拖动小部件时,会出现文本。在我放下它后,文本再次消失。

什么会导致这种行为?也许遇到类似问题的人可以提供帮助。

编辑:

我尝试将位图作为png保存到缓存目录,然后通过setImageViewUri方法设置图像,但结果是一样的。具有正确尺寸的透明图像,并且在拖放时 - 它是可见的。

0 投票
1 回答
731 浏览

java - 绘图 StaticLayout 无法正常工作

我已经用 a 实现了ViewaText.Layout并且正在绘制它,但我什么也没得到。这是我的代码

此代码仅用于测试它是否正常工作并且效率不高。哪一部分是错误的并导致它不呈现文本?

0 投票
2 回答
1021 浏览

android - 如何在Android中将文本放入具有固定宽度和高度的StaticLayout?

我正在尝试使用绘制文本Canvas并发现使用StaticLayout会自动处理换行符。我还想限制它的高度,以便当文本太长时它会被椭圆化,但文本容器的大小是动态的。我可以轻松地将宽度应用于StaticLayout,但找不到一种方法来做高度。

我尝试使用TextUtils.ellipsize(),但在获取行间距时遇到问题。