TextView marquee программно
Попытка заполнить textview(ы) из массива. Мне удалось получить желаемый эффект через XML с помощью кода ниже
<?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 программно может быть ответом, но не могу получить их в marquee. Это код, над которым я работаю.
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);