Java中的文本对齐库

9
我正在编写一个需要文本对齐的安卓应用程序,但原生不支持此功能。考虑到在屏幕分辨率和尺寸方面的字体和文本大小问题,使用 WebView 也行不通。因此,我打算编写一个自定义视图来扩展 TextView,以实现文本对齐,并想知道是否有任何可供参考的代码,以节省时间。如果有其他有用的建议,也将不胜感激。

根据我们所讨论的对齐方式类型,你可以通过使用android:gravity属性来管理很多内容。 - kaspermoerch
1
很不幸,如果可能的话,我需要全文对齐并带连字符。 - Martyn
参见https://dev59.com/unM_5IYBdhLWcg3wp0wX - Jeff Atwood
1个回答

33

更新

我们已创建一个简单的类。目前有两种方法可以实现您所需的功能,都不需要使用WEBVIEW支持SPANNABLES

库:https://github.com/bluejamesbond/TextJustify-Android

支持:Android 2.X到5.X

设置

// Please visit Github for latest setup instructions.

截图

Comparison.png


origWidth参数相对于什么? :) - mahkie
好问题。嗯,我已经有一段时间没有看过它了。让我看看我能向你解释些什么。所以当我最初写这个时,我认为characterWidthnumberofcharacters=width。但由于某种未知的原因,这是不正确的。实际上,它是characterWidthnumberofcharacters+[X]=width,其中我不知道[X]是什么。但我知道[X]和宽度之间没有直接的关联。如果你找到答案,请编辑我的回答:D - Mathew Kurian
原因是因为字符具有不同的宽度。例如,某些字体中,感叹号符号比@符号更窄。如果您想要characterWidth*numberofcharacters=width,则需要使用固定宽度字体。如果您还没有被说服,请查看固定宽度字体。您会发现感叹号字符左右都有空间,而@符号则没有。 - Steven Linn
@StevenLinn 我已经修复了。 - Mathew Kurian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接