2012-06-25 34 views
5

He creado una serie de pestañas que tienen un ancho fijo de 100 px. Una pestaña contiene una imagen con algún texto debajo. Si el texto es demasiado largo para caber, quiero que se desplace automáticamente. Solo quiero una línea Intenté lo siguiente pero no funcionó. Estoy usando Android 2.3:Android: texto de desplazamiento automático en TextView

<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> 

¿Alguna idea de por qué esto no funciona? Encontré la solución de otra publicación y allí el usuario indicó que funciona.

Respuesta

11

En su actividad hay que añadir si quieres carpa instalada en el texto

TextView tv=(TextView)findViewById(R.id.textview1); 
    tv.setSelected(true); 
+0

Después de publicar esto, he hecho un poco más la búsqueda y me encontré con esto también. Muchas gracias de todos modos! – AndroidDev

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" 
     /> 
0

Tenga en cuenta que si el texto es más pequeño en longitud que el ancho de los límites definidos para él NO se desplazará. En este caso, es posible que desee extender el texto consigo mismo algo así como:

-. . . . .

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

Y si desea que su texto a la marquesina siempre:

m_textView.setMarqueeRepeatLimit(-1); 
Cuestiones relacionadas