2012-02-07 17 views
26

Quiero restablecer una altura de textView después de haberla agregado a la ventana principal en el archivo xml.volver a establecer una altura de TextView programmatically

dentro de un RelativeLayout,

<TextView 
     android:id="@+id/text_l" 
     android:layout_width="50sp" 
     android:layout_height="50sp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginLeft="10sp" 
     android:layout_marginTop="145dp" 
     android:gravity="center" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#000000" > 
    </TextView> 

sólo quiero cambiarlo de 50 a 70:

me trataron:

TextView text = (TextView)findViewById(R.id.text_l); 
text.setHeight(70); 

pero nada cambió.

+0

Prueba esto: http://stackoverflow.com/questions/3522224/how-to-dynamically-set-textview-height-android –

Respuesta

70

se debe cambiar a través de LayoutParams:

LayoutParams params = (LayoutParams) textView.getLayoutParams(); 
params.height = 70; 
textView.setLayoutParams(params); 

EDITAR

No debe utilizar tamaños en píxeles en su código, dimensiones de uso para esto:

dimens.xml:

<dimen name="text_view_height">50dp</dimen> 

En código:

params.height = getResources().getDimensionPixelSize(R.dimen.text_view_height); 
+1

Gracias, hombre, que realmente funcionó: D – Q8yDev

+0

Lo más interesante aquí es: textview.setheight (...) funcionó en algunos de mis test devic es, aunque en contraste con la documentación de la función setHeight de TextView, NO cambia los parámetros de diseño de la vista. Pero en uno de mis dispositivos de prueba (Xperia ray, Android 4.0.4) esto funcionó solo en el paisaje, pero no en modo retrato. Cambiar la altura en los parámetros de diseño como sugirió funcionó bien en todos mis dispositivos de prueba. – Nantoka

+0

No funcionó para mí. Me temo que no funciona en las nuevas API. Una vez que TextView se ha superpuesto, el ajuste de altura en TextView no tiene ningún efecto. – cesards

3

puede ajustar dinámicamente el ancho y la altura de Vista de Texto por

private TextView mTxtView; 
private int screenWidth, screenHeight; 
Display display = getWindowManager().getDefaultDisplay(); 
    screenWidth = display.getWidth(); 
    screenHeight = display.getHeight(); 


LayoutParams params = mTxtView.getLayoutParams(); 
    params.width = screenWidth-30; 
    mTxtView.setLayoutParams(params); 
6

pragmático puede ajustar la altura TextView como:

private TextView mTxtView; 
int height = 50; //your textview height 
mTxtView.getLayoutParams().height = height; 
+3

Prefiero hacer esto, en lugar de encontrar la clase Layoutparams correcta – Roisgoen

+0

que es verdad @Roisgoen –

+0

Lo que requiere especial atención es que si usa textView para getLayoutParams(), sería mejor juzgar nulo? – BertKing

Cuestiones relacionadas