在TextView中设置文本的上升,下降,基线
答
这么晚了,但我也遇到了这个问题,我解决了一些窍门。 (just modify baseline
,没有上升,下降或东西)
-
注意,
fontMetrics' values
(上升,下降,底部,顶部)是依赖于textSize
。所以我们必须在
view is drawn
之后使用fontMetrics' values
。 (如果它是自动调整大小或东西)做某事视图绘制之后,使用Sa Qada's answer
-
baseline is always 0.
下降,上升,顶部,底部是相对值。请参阅此Suragch's answer。
-
更改fontMetrics的值不影响UI。
设置自定义基线(文本视图的文本位置),只需使用填充。下面的代码中的 与两个TextView的基线对齐。
// this is kotlin code, but I'm sure you can understand // align textview2 to textview1's baseline val tv1Baseline = tv1.paddingBottom + tv1.paint.fontMetrics.bottom val tv2Baseline = tv2.paddingBottom + tv2.paint.fontMetrics.bottom val newPaddingOffset = tv1Baseline - tv2Baseline tv2.setPadding(tv2.paddingLeft, tv2.paddingTop, tv2.paddingRight, tv2.paddingBottom + newPaddingOffset)
+0
感谢您的回答,非常感谢。我会试试这个。 – Siva
+0
@Siva,但这可能不是一个好主意。因为你必须考虑文本的对齐情况。 –
你检查'TextView'文档?有什么与“大小”有关吗? – pskink
@pskink我没有检查。没有任何与此相关的公开API。但getPaint()提供了fontmetrics的值。我想知道是否可以在绘画对象内改变它。 – Siva
与'TextView' api中的大小没有关系? – pskink