簡體   English   中英

RSS提要到一行水平自動滾動textview

[英]RSS Feed to one line horizontaly autoscroll textview

在我的項目中,我使用該庫https://github.com/matshofman/Android-RSS-Reader-Library獲取rss feed並解析為字符串,這是我的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時,不顯示提要字符串的所有符號。 我怎么了

問題是您的動畫僅按設備的寬度(dm.widthPixels)而不是RSS feed字符串的實際寬度轉換TextView。

例如,如果您的屏幕為600像素寬,並且RSS提要字符串顯示的像素超過600像素,則您將無法看到RSS提要的結尾。

嘗試使用以下TextView屬性:

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

編輯:沒有TranslateAnimation,TextView具有內置的文本滾動。

TextView已替換為TextSwitcher

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM