如何在 Android 中使用 Spannable Marquee TextView 制作新闻栏?

How to make News Bar with Spannable Marquee TextView in Android?

我正在尝试在文本视图中创建一个带有选取框动画的新闻栏。

我将此视图与 marqueeRepeatLimit = "marquee_forever"

一起使用
                    <TextView
                        android:id="@+id/scroll_notifs"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:ellipsize="marquee"
                        android:marqueeRepeatLimit="marquee_forever"
                        android:scrollHorizontally="true"
                        android:padding="10dp"
                        android:gravity="center"
                        android:focusable="true"
                        android:focusableInTouchMode="true"
                        android:background="@color/black_scrollTextView"
                        android:textColor="@color/white"
                        android:textSize="@dimen/text_size_s"
                        android:visibility="gone"
                        android:freezesText="true"/>

我在代码中设置:

TextView scroll_notifs = (TextView) view.findViewById(R.id.scroll_notifs); scroll_notifs.setSelected(true);

textview 就像新闻栏一样,动画效果很好,现在的问题是如何让 textview 的一部分可以点击,我使用了这样的 spannable 字符串 :

 SpannableString spannableString = new SpannableString("this is the fancy box");

    spannableString.setSpan( new ClickableSpan() {
        @Override
        public void onClick(View view) {
            TextView textView = (TextView) view;
            CharSequence charSequence = textView.getText();
            Log.d("span click",charSequence.toString());
        }
    }, 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    scroll_notifs.setText(spannableString);

    scroll_notifs.setMovementMethod(LinkMovementMethod.getInstance());

所以点击有效但不跟随移动跨度,当我点击文本视图的第一个像素时它才有效,我认为这是因为跨度从 0 开始到 3 结束。

但是,当重复字幕时,我开始单击跨度,在动画时遵循它,它不会响应。

所以,对于这个或任何其他想法,有任何一种解决方案可以制作一个带有单独点击监听器的新闻栏。

此致

我认为 spannable TextView 不可能有动画,我找到了另一种制作漂亮新闻栏的方法:

http://www.scriptscoop.online/t/e52f7a28abfb/how-can-i-animate-an-android-textview-without-refreshing-it-and-fill-i.html