【问题标题】:Simple Android Scrolling Text Ticker简单的 Android 滚动文本代码
【发布时间】:2011-10-12 04:50:06
【问题描述】:

我想为一个简单的 android 应用程序创建一个滚动文本代码。

我有一个存储在数组中的大引号列表,我想用引号随机填充我的代码:一个引号一直滚动,然后随机选择另一个引号并滚动,依此类推.

无论您关注什么或悬停在什么上,股票行情都应该随着...

1) 如何为这些目的创建文本代码?

2) 如何使用从我的数组中选择的稳定的随机报价流填充代码?

谢谢

【问题讨论】:

    标签: android text


    【解决方案1】:

    如果我理解您想要正确执行的操作,您可以查看 TextViewellipsizemarqueeRepeatLimit 属性。

    通过 API:

    http://developer.android.com/reference/android/widget/TextView.html#attr_android:ellipsize

    http://developer.android.com/reference/android/widget/TextView.html#attr_android:marqueeRepeatLimit

    另外,查看this question 的实现。我记得当我必须实现这样的事情时,XML 属性可能很棘手。它们相互干扰并阻止文本在屏幕上滚动,因此可能需要一些玩弄才能使其正确。

    从那里开始,用不同的引号填充它就像在 TextView 上调用 setText() 一样简单,我假设您将在适当的时候将随机引号存储在数组或数据库中。

    【讨论】:

    • 我怎么知道调用 setText()?我想在当前字符串一直运行后立即设置文本,但我怎么知道什么时候发生?
    • 有多少个引号?如果不是太多,请事先创建一个字符串。从数组中随机提取所有引号并将它们编译成一个大字符串并将其设置为 TextView 中的文本。
    • 超过 1000 个引号,使用单个字符串是不切实际的。
    • 你需要发挥创造力。一种可能的解决方案,虽然很混乱,但可能是获取 TextView 的宽度、字符串的长度(您需要使用等宽字体)和 TextView 的滚动速度(它是恒定的,但您需要实验确定速度)。用它来计算时间。然后使用计时器或为计算的时间休眠一个单独的线程,然后更改字符串。我不确定这是否可行,但这可能是一个不错的起点。 API 中可能还有一些东西可以规避所有这些,但我对此一无所知。
    • 查看developer.android.com/reference/android/view/… 了解视图的宽度。如果视图是MATCH_PARENTWRAP_CONTENT,则需要获取父视图并检查其宽度。不幸的是,这很快就会变得非常乏味。一定有更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 2021-03-03
    • 2012-03-04
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    相关资源
    最近更新 更多