¿Redimensionar el alto(height) de un textview, dependiendo del texto dentro del campo?

289 views
Skip to first unread message

fernandosg

unread,
Jan 19, 2013, 1:54:11 AM1/19/13
to android...@googlegroups.com
Hola.
Tengo una duda, que muy probable este implementando una solucion erronea, teniendo otras posibilidades, espero alguien me oriente, ya que no se muy bien el uso de las vistas y XML en Android.

Lo que quiero hacer es lo siguiente.
Tengo una aplicacion Android, que trae el RSS de un blog y muestra los post, la implementacion del codigo para extraerlo, no es el problema, el problema es el siguiente:

Tengo dos TextView, donde cargo el contenido del RSS:

<?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="0dp"
    android:background="@drawable/background"
    android:orientation="vertical" >

        <TextView android:id="@+id/mLine1" 
            android:layout_width="match_parent"            
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_vertical"/>
        <TextView android:id="@+id/mLine2"   
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            android:singleLine="true"
            android:ellipsize="marquee"/>
    

</LinearLayout>


El problema esta, en que cuando trae el contenido, el TextView solo abarca el 100% del ancho, traigo el texto, pero al ser mucho contenido, se deja de visualizar lo que pasa del ancho.

Para ejemplificarlo tomando el texto anterior, se muestra asi:


El problema esta, en que cuando trae el contenido, el TextVie...


(Sin los puntos suspensivos) el texto se deja de mostrar,lo que quiero, es que el TextView, si se puede, se redimensione el alto (height), para que se vea el resto del contenido:

El problema esta, en que cuando trae el contenido, el TextView
solo abarca el 100% del ancho, traigo el texto, pero al ser mucho
contenido, se deja de visualizar lo que pasa del ancho.


¿Alguien sabe si se puede hacer eso?.

Otra pregunta, al añadirle el Background al linearlayout, aumenta el margen alto y ancho del textview (abarca aparentemente el campo,textview,mas tamaño,pero el texto se sigue sin mostrar),¿a que se debe?.
Muchas gracias por leer este mensaje.

Saul Diaz

unread,
Jan 19, 2013, 4:33:36 AM1/19/13
to Android Startup
En teoría si tienes wrap_content en altura debería redimensionarse adecuadamente. A lo mejor es porque te has dejado singleLine puesto a true. En teoría debería mostrartelo; pero si se pone rebelde llama al invalidate() del TextView.

Respecto a tu pregunta sobre el background; si el tamaño del TextView es mas diferente del tamaño del archivo del background, este se redimensionará hasta alcanzar el del background, dando lugar a esos  efectos extraños; por eso siempre intenta poner @color o 9patch a los backgrounds.

Un saludo!

Atentamente
Saúl Díaz González

Fernando F. Gallego

unread,
Jan 19, 2013, 8:57:26 AM1/19/13
to android...@googlegroups.com
Tienes puesto singleLine="true" así nunca va a tener más de una línea, si lo quitas debería salirte el texto completo en varias líneas. 
Luego puedes meterlo en un scrollView para poder hacer scroll si se sale de la pantalla por abajo.

Saludos

Fernando Segura Gòmez

unread,
Jan 19, 2013, 1:24:52 PM1/19/13
to android...@googlegroups.com
Muchas gracias, ya he modificado el singleLine, tienen razon, era eso, ya hay una segunda linea, pero en la segunda linea se sigue recortando.
El codigo XML quedo asi:

<?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="0dp"
    android:background="@drawable/background"    
    android:orientation="vertical" >

        <TextView android:id="@+id/mLine1" 
            android:layout_width="match_parent"            
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:singleLine="false"
            android:gravity="center_vertical"/>
        <TextView android:id="@+id/mLine2"   
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            android:singleLine="false"
            android:ellipsize="marquee"/>
    

</LinearLayout>

Y asi se ve
Imágenes integradas 1

Lo que quiero es que abarque mas de 2 lineas, dependiendo de cuanto texto haya sacado.
Muchas gracias a todos por haber leido el mensaje.
rss.png
Reply all
Reply to author
Forward
0 new messages