2017-01-29 14 views
3

Пытается заполнить текстовое представление (ы) из массива. Мне удалось получить желаемый эффект через XML с помощью кода нижеTextview marquee программно

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/marque_scrolling_text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" 
     android:ellipsize="marquee" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:padding="16dp" 
     android:scrollHorizontally="true" 
     android:singleLine="true" 
     android:text="Create a Marquee (Scrolling Text) in Android Using TextView. Android Marquee (Scrolling Text) Tutorial with Example" 
     android:textSize="24sp" /> 
</LinearLayout> 

Но мне нужно несколько из них в массиве - поэтому я считаю создание TextViews программно может быть ответом, но не могу заставить их шатер. Это код, над которым работает.

String[] strings = {"Mark", "James", "Paul"}; 
     LinearLayout layout = (LinearLayout)findViewById(R.id.linearlayout); 


     for(String s : strings) 
     { 
      TextView newTextView = new TextView(this); 
      newTextView.setText(s); 
      newTextView.setSingleLine(true); 
      newTextView.setEllipsize(TextUtils.TruncateAt.END);  
      newTextView.setHorizontallyScrolling(true); 
      newTextView.setLines(1); 
      newTextView.setMarqueeRepeatLimit(-1); 
      newTextView.setSelected(true); 
      newTextView.setTextSize(24); 
      layout.addView(newTextView); 
     } 

ответ

2

Попробуйте это.

final RelativeLayout relativeLayout = new RelativeLayout(this); 
final RelativeLayout relativeLayoutbotombar = new RelativeLayout(this); 
textView = new TextView(this); 
textView.setId(1); 

RelativeLayout.LayoutParams relativlayparamter = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.MATCH_PARENT, 
        RelativeLayout.LayoutParams.MATCH_PARENT); 

     RelativeLayout.LayoutParams relativlaybottombar = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     relativeLayoutbotombar.setLayoutParams(relativlaybottombar); 


     textView.setText("text text text text text, with a long "); 
     textView.setEllipsize(TruncateAt.MARQUEE); 
     textView.setSelected(true); 
     textView.setSingleLine(true); 


     relativeLayout.addView(relativeLayoutbotombar); 
     relativeLayoutbotombar.addView(textView); 
     setContentView(relativeLayout, relativlayparamter); 

Другой вариант:

TextView textView = (TextView) this.findViewById(R.id.xxx); 
textView.setEllipsize(TruncateAt.MARQUEE); 
textView.setText("Text text text text"); 
textView.setSelected(true); 
textView.setSingleLine(true); 
+0

Спасибо за быстрый ответ, но, похоже, не работать - не скроллинга. –

+0

Проверить обновление @MarkJames – josedlujan

4

Попробуйте это .. Это работа

TextView testing = (TextView) this.findViewById(R.id.testing); 
testing.setEllipsize(TextUtils.TruncateAt.MARQUEE); 
testing.setMarqueeRepeatLimit(-1); 
testing.setSingleLine(true); 
testing.setSelected(true);