Перемещение текста в textView android

Я хотел бы спросить вас, есть ли в textview какой-либо параметр, когда у меня слишком длинный текст, например, текст имеет 30 dp, а textview - 15 dp. Я хочу показать текст, который перемещается из левого угла вправо и возвращается в начало и еще раз. Что-то вроде анимации. Я хочу, чтобы пользователь увидел весь текст. Что-то вроде автоматического прокрутки.

Изменить: как я могу это сделать в коде, а не в xml?

Ответ 1

Вы должны использовать android:ellipsize="marquee".

EDIT: вы можете использовать textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);

Ответ 2

пример -

в XML:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:textColor="#ff4500"
        android:text="this is a very long piece of text that will move" />
</RelativeLayout>

в Java:

        tv = (TextView) this.findViewById(R.id.tv);  
        tv.setSelected(true);  // Set focus to the textview

Ответ 3

<TextView
        android:id="@+id/YOURID"
        android:layout_width="15dp"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:singleLine="true"
        />

Это поможет ему прокручиваться до фокусировки

Ответ 4

Да, его называют marquee. Настройте следующее для TextView:

android:singleLine="true"
android:ellipsize="marquee"

Ответ 5

Попробуйте это 3 строки кода: (краткое изложение выше)

    textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
    textView.setSingleLine(true);
    textView.setSelected(true);

Ответ 6

Используйте этот код, он работает на 100%:

EditText top=new EditText(this);
top.setText("Developers are working to add more features");
top.setEllipsize(TextUtils.TruncateAt.MARQUEE);
top.setHorizontallyScrolling(true);
top.setMarqueeRepeatLimit(-1);
top.setFocusable(true);
top.setFocusableInTouchMode(true);