- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
之前,我在 stackoverflow 上问了一个标题为“How to paginate text in Android”的问题,得到了一个很好的答案,对我帮助很大。现在我需要在较旧的 Android API 上移植代码,以防万一,Android API 版本 8,这样我就可以在几乎所有 Android 设备上运行我的应用程序,从 Android 2.2 开始。
我遇到的问题是答案中使用的一些方法仅在 Android API 16+ 中可用。
mPagination = new Pagination(mText,
mTextView.getWidth(),
mTextView.getHeight(),
mTextView.getPaint(),
mTextView.getLineSpacingMultiplier(),
mTextView.getLineSpacingExtra(),
mTextView.getIncludeFontPadding());
所以,我至少要实现这些方法:
TextView.getLineSpacingMultiplier()
TextView.getLineSpacingExtra()
TextView.getIncludeFontPadding()
第二个好像已经描述过了here作为:
mTextView.getPaint().getFontSpacing()
* mTextView.getLineSpacingMultiplier() + mTextView.getLineSpacingExtra()
但我不知道其他两个是否与 2.2 相关,如果是,如何在 Android API 版本 8 中实现它们。有一些提示 here ,使用我无法完全理解的Android TextView
的源代码。
最佳答案
如果我们查看 TextView 的
源,我们可以看到以下内容。
在Android 5.0
:
private float mSpacingMult = 1.0f;
private float mSpacingAdd = 0.0f;
...
private boolean mIncludePad = true;
在Android 2.0
:
private float mSpacingMult = 1;
private float mSpacingAdd = 0;
...
private boolean mIncludePad = true;
所以默认值是相等的。
话虽如此,您可以使用 Pagination 的
构造函数和适用于 API 8+
的默认值:
new Pagination(mText,
mTextView.getWidth(),
mTextView.getHeight(),
mTextView.getPaint(),
1.0f, 0.0f, true);
如果您让用户更改/设置(通过设置菜单)这些参数,同样无需使用 getter
。您只需使用 TextView 的
setters
之一设置参数的新值,并将相同的值传递给 Pagination 的
构造函数。例如,
new Pagination(mText,
mTextView.getWidth(),
mTextView.getHeight(),
mTextView.getPaint(),
newValueOfSpacingMultiplier,
newValueOfSpacingExtra,
newValueOfIncludeFontPadding);
我想说的是,没有必要“在 Android API 版本 8 中实现它们”。一旦设置了参数,在 TextView 的
生命周期内永远不会改变。您可以通过简单的测试来检查它。只需在设置任何文本之前(例如,在 sample code 的 onCreate()
中)和之后(在 mPagination 之后的
初始化或在 onGlobalLayout()
中)查看它们的值update()
方法中)。
将 TextView
的所有参数传递给 Pagination 的
构造函数的想法是在底层使用 Layout
类的相同配置实例TextView
和 Pagination
。因此,无需将参数传递给之前使用 getters
从 TextView
检索到的 Pagination 的
构造函数,您可以实现相同配置的 Layout
通过将您想要的任何值传递给 Pagination
并使用适当的 setters
将相同的值设置为 TextView
已经在 中满足API 版本 8
。
关于android - 如何为旧版 Android API 实现 TextView 行距方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546288/
我正在开发一份报告,其中包含一个详细信息带和一个使用条件样式的字段。我正在使用 express 。行间距过大。 我怎样才能最小化线条之间的空间,使线条几乎接触? 下面是报告 XML。
我有一个 UITableView ,其中每个单元格都使用 Core Text 来绘制一些文本。在计算返回 heightForRow 的高度时,我使用 NSString sizeWithFont 来确定
如何修改多行 UILabel 中的行间距(行间距)? 最佳答案 编辑:显然 NSAttributedString 会在 iOS 6 及更高版本上做到这一点。而不是使用 NSString 来设置标签的文
我正在使用 Eclipse 进行 Java 编程,但编辑器中的行看起来距离太近。 我想更改行之间的间距/间隙量。 Eclipse 中有一个选项可以用来执行此操作吗? 最佳答案 我已经克隆并安装了字体
然后我使用 wxDC::DrawLabel 绘制多行文本我想控制字体行距(行距)。可能吗? 最佳答案 没有现有的功能可以做到这一点。 您可以创建自己的。使用 DrawText() 以您想要的间距绘制单
我想以编程方式更改 TextView 的行距。我搜索并找到了 setLineSpacing。问题是这样的,它有两个参数,我尝试了很多值,但我无法得到我想要的结果。我只需要给 TextView 5dp
在 Interface Builder 内部,是否可以为 UITextView 设置段落样式属性,例如行距? 最佳答案 是的,您可以使用 Attributed 设置段落样式属性测试而不是纯文本。请参阅
我想知道如何在使用 Win2D 的窗口通用应用程序中计算给定字体的高度(及其属性,如大小、粗细、样式...)。 我以前使用过 CanvasTextLayout,但它需要一个 text 才能工作,就像这
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我是一名优秀的程序员,十分优秀!