问题标签 [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.
android - 在android的StaticLayout中使一些文本加粗
有什么方法可以使静态布局的某些文本变为粗体?我正在尝试打印一份政府文件,以便我使用 StaticLayout 使用以下代码在Canvas
.
WheregetText()
方法返回我要打印的字符串,如下所示。
所以在这里我只想让医院名称加粗。
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 后不会改变?
android - LineSpace 如何影响一行文本中的静态布局高度
考虑这个简单的例子:
我有这样的单行文本:“你好”
我想用 StaticLayout 测量这个文本。所以我写了这样的东西:
在上面的代码中,我在 for 循环中更改了 lineSpace 变量,并且每次记录布局的高度:
当我在具有 android M 布局的设备上运行此代码时,高度不会随着 lineSpace 的多个值而改变。但在较低的 android 版本中,布局的高度分别随行距而变化。
尽管当您的文本超过一行时,StaticLayout 会考虑两行之间的行距。但似乎 Android M 不考虑最后一行的行空间,但较低的 Android 版本会考虑。
我的问题是:在什么版本的 android StaticLayout 考虑最后一行的行空间之后?我可以写这样的东西吗:
android - Android中如何使用StaticLayout?
我需要建立自己的自定义TextView
,所以我一直在学习如何StaticLayout
在画布上绘制文本。这比Canvas.drawText()
直接使用更好,或者文档说。但是,该文档没有给出如何做到这一点的任何示例。只有一个模糊的参考StaticLayout.Builder
是更新的方式来做到这一点。
我在这里找到了一个例子,但它似乎有点过时了。
我终于工作了,但如何做到这一点,所以我在下面添加我的解释。
android - 什么是 Android 的领先优势?
前导边距是什么意思,如
文档LeadingMarginSpan
说
影响前导边距的段落样式。单个段落可以有多个前导边距跨度;它们将按顺序呈现,每个都将其边距添加到它之前的边距。对于从右到左的段落中的行,前导边距位于右侧。
但它并没有真正说明什么是领先优势。
它就像段落第一行的制表符缩进吗?还是整个段落缩进的地方?我认为它是 /lidɪŋ/ 而不是/lɛdɪŋ/ 就像在行之间的空间中一样。
我想知道的原因是我正在尝试使用 StaticLayout 制作自己的 TextView。我指的是 Layout 和 StaticLayout源代码的想法。我正在尝试删除所有不必要的部分,但我不知道这是什么。
这里有一些 SO 问题也询问领先边距,但提问者似乎知道这意味着什么。
一张图片真的很有帮助,但不是绝对必要的。
android - Android Layout:getLineBaseline、getLineDescent、getLineAscent、getLineBottom、getLineTop的含义
以下方法Layout
(包括StaticLayout
、DynamicLayout
和BoringLayout
)的文档非常少。
getLineBaseline(int line)
getLineDescent(int line)
getLineAscent(int line)
getLineBottom(int line)
getLineTop(int line)
这些方法返回的具体数字是多少?它们是正常的字体度量值还是布局上的位置?
我做了一个测试项目来找出答案,所以我在问答风格下发布了我的答案。
android - StaticLayout 花费太多时间
我使用 StaticLayout 对我的 Html 文本进行分页。但是当我在 StaticLayout 中使用大文本时,构建过程非常繁重并且需要很多时间。它只是发生在 android 5 以下的 androids 我该如何解决这个问题?这是我的代码
我在这里用过
我调试我的代码,我知道这部分代码是我的问题:
android - 如果超过 50 行,AppWidget ListView 中的 StaticLayout 会显示不可见的文本
我有一个AppWidget
RemoteView
带有ListView
一个孩子ImageView
的带有自定义字体文本的。
这是我的代码:
它工作正常。但是,每次文本长到超过 50 / 60 行时,它都会显示为空,但我可以滚动列表视图(因此 staticLayout 不为空,因为位图的高度不为 0)。
另一个重要的事情是以下行为:当我开始拖动小部件时,会出现文本。在我放下它后,文本再次消失。
什么会导致这种行为?也许遇到类似问题的人可以提供帮助。
编辑:
我尝试将位图作为png保存到缓存目录,然后通过setImageViewUri
方法设置图像,但结果是一样的。具有正确尺寸的透明图像,并且在拖放时 - 它是可见的。
java - 绘图 StaticLayout 无法正常工作
我已经用 a 实现了View
aText.Layout
并且正在绘制它,但我什么也没得到。这是我的代码
此代码仅用于测试它是否正常工作并且效率不高。哪一部分是错误的并导致它不呈现文本?
android - 如何在Android中将文本放入具有固定宽度和高度的StaticLayout?
我正在尝试使用绘制文本Canvas
并发现使用StaticLayout
会自动处理换行符。我还想限制它的高度,以便当文本太长时它会被椭圆化,但文本容器的大小是动态的。我可以轻松地将宽度应用于StaticLayout
,但找不到一种方法来做高度。
我尝试使用TextUtils.ellipsize()
,但在获取行间距时遇到问题。