没有部分绘制线条的 TextView
Posted
技术标签:
【中文标题】没有部分绘制线条的 TextView【英文标题】:TextView without partially drawn lines 【发布时间】:2011-06-19 18:07:55 【问题描述】:是否有可能在android中创建一个可以滚动多行文本的TextView,但除非它可以完全绘制在它的高度,否则不会绘制第一行或最后一行文本?我意识到滚动时它可能看起来很奇怪,但我不想看到字符的顶部或底部被截断。
建议的解决方案可能涉及修改 android 平台。
【问题讨论】:
你想让 textView 逐行滚动,不流畅...? 是的,逐行或逐页,但没有平滑滚动。 【参考方案1】:我不知道你说的修改android平台是什么意思,但是如果你想要一个全新的行为,对你自己的TextView进行编码(或扩展android TextView以改变滚动)没有任何限制。
如果您真的想这样做,您可以更改 Touch/Scrolll 行为以直接滚动到下一个/上一个可见行尝试更改 TextView Scoller(setScoller( )
方法)。如果这不起作用,您将不得不自己编写代码(基本上通过textview.getLayout().getLineTop(line number)
获取行位置并将屏幕顶部定位到该点)。
您的唯一限制是当您需要更改嵌入“内核”中的某些内容时(例如,来自 MediaPlayer 的媒体协议)。
查看marquee example
【讨论】:
【参考方案2】:看看您是否可以将此类http://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html 与滚动条一起使用。您的 textView 高度需要是文本行高度的倍数。
【讨论】:
【参考方案3】:太棒了,我建议你使用WheelView by Yuri
如果您选择了背景、高度和宽度的良好组合;你会得到你想要的效果。
【讨论】:
【参考方案4】:Android Terminal Emulator 项目包含一个带有 EmulatorView 类的库,该类的行为几乎符合我的要求,并且是开源的:https://github.com/jackpal/Android-Terminal-Emulator
虽然它包含大量用于终端内容的额外代码,但如有必要,可能会被删除。但是我必须假设它只支持等宽字体,这使得它不太有用。
【讨论】:
以上是关于没有部分绘制线条的 TextView的主要内容,如果未能解决你的问题,请参考以下文章