5

I've created a series of tabs that have a fixed width of 100px. A tab contains an image with some text below it. If the text is too long to fit, I want it to automatically scroll. I only want one line. I tried the following but it did not work. I am using Android 2.3:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginRight="3dp" android:layout_marginTop="3dp" android:background="#ff737373" android:gravity="center" android:minWidth="64dp" android:orientation="vertical" android:padding="3dp" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:tag="tabImage" > </ImageView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true" android:scrollHorizontally="true" android:singleLine="true" android:maxWidth="100px" android:tag="tabCaption" android:textColor="#ffd9d9d9" android:textSize="16sp" /> </LinearLayout> 

Any idea why this does not work? I came across the solution from another posting and there the user indicated that it works.

4 Answers 4

11

In your activity you have to add if you want to marquee on text

 TextView tv=(TextView)findViewById(R.id.textview1); tv.setSelected(true); 
Sign up to request clarification or add additional context in comments.

1 Comment

After posting this, I did some more searching and came across this as well. Thanks a lot anyway!
3

You might want to try this:

https://github.com/kaeppler/ignition/blob/master/ignition-core/ignition-core-lib/src/com/github/ignition/core/widgets/ScrollingTextView.java

Comments

0
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:gravity="center" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:text="Auto text scroller" android:textSize="50sp" /> 

Comments

0

Be aware that if the text is smaller in length than the width of the bounds defined for it it WILL NOT scroll. In this case you may want to extend the text with itself something like:

-. . . . .

String charsInBreak = " "; while (bounds.width() < this.m_width) { m_text = (m_text + charsInBreak + m_text); paint.getTextBounds(m_text, 0, m_text.length(), bounds); } 

And if you want your text to marquee forever:

m_textView.setMarqueeRepeatLimit(-1); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.