RSS馈送到一行horizo​​ntaly autoscroll textview

时间:2014-10-16 07:44:58

标签: android rss textview

在我的项目中,我使用这个库https://github.com/matshofman/Android-RSS-Reader-Library获取rss feed并解析为string,这是我的textview xml

<TextView
        android:id="@+id/rssFeedAutoScrollText"
        android:layout_width="match_parent"
        android:layout_height="60px"
        android:layout_alignParentBottom="true"
        android:ellipsize="none"
        android:lines="1"
        android:maxLength="1000000"
        android:maxLines="1"
        android:textAppearance="?android:attr/textAppearanceLarge" />

这是一个翻译动画

scrollingTextView = (TextView) findViewById(R.id.rssFeedAutoScrollText);
        String feed = "";
        try {
            feed = feedTask.get();
        } catch (InterruptedException e) {
        } catch (ExecutionException e) {
        }

        Log.d("feed", feed);
        String rss = feed.replaceAll(
                "\\r\\n|\\r|\\n", "");
        scrollingTextView.setText(rss);

        DisplayMetrics dm = getResources().getDisplayMetrics();

        TranslateAnimation m_ta = new TranslateAnimation(dm.widthPixels, -1
                * (dm.widthPixels), 0f, 0f);
        m_ta.setDuration(20000);
        m_ta.setInterpolator(new LinearInterpolator());
        m_ta.setRepeatCount(Animation.INFINITE);

        scrollingTextView.startAnimation(m_ta);

但是当我编译我的项目textview时,不要显示Feed字符串的所有符号。我的问题是什么?

3 个答案:

答案 0 :(得分:3)

问题是你的动画只能通过设备的宽度(dm.widthPixels)来翻译TextView,而不是RSS提要字符串的实际宽度。

例如,如果您的屏幕宽度为600像素,并且如果要显示的RSS源字符串超过600像素,您将无法看到RSS源的结尾。

答案 1 :(得分:0)

尝试使用TextView的以下属性:

android:ellipsize="marquee"
android:marqueeRepeatLimit="-1"
android:singleLine="true"
android:scrollHorizontally="true"

编辑:没有TranslateAnimation,TextView内置了文本滚动。

答案 2 :(得分:0)

TextView已被替换为TextSwitcher