2012-02-07 9 views
26

Voglio reimpostare un'altezza textView dopo averlo aggiunto alla finestra principale nel file xml.re-impostazione di un'altezza TextView a livello di programmazione

all'interno di 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> 

voglio solo cambiare 50-70:

ho provato:

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

ma nulla è cambiato.

+0

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

risposta

70

Si dovrebbe modificare tramite LayoutParams:

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

EDIT

Si consiglia di non utilizzare le dimensioni in pixel in te codice, utilizzare le dimensioni per questo:

dimens.xml:

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

Codice:

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

Grazie amico, che in realtà ha funzionato: D – Q8yDev

+0

La cosa bizzarra qui è: textview.setheight (...) ha funzionato su alcuni dei miei test devic es, anche se in contrasto con la documentazione della funzione setHeight di TextView NON modifica i parametri di layout della vista. Ma su uno dei miei dispositivi di test (Xperia ray, Android 4.0.4) questo ha funzionato solo in orizzontale ma non in modalità verticale. Cambiare l'altezza nei parametri di layout come hai suggerito ha funzionato bene su tutti i miei dispositivi di test. – Nantoka

+0

Non ha funzionato per me. Ho paura che non funzioni con le API più recenti. Una volta che il TextView è stato stratificato, l'impostazione dell'altezza nel TextView non ha alcun effetto. – cesards

3

è possibile impostare in modo dinamico larghezza e l'altezza di TextView da

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

Pragmaticamente è possibile impostare TextView altezza come:

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

Preferisco farlo, piuttosto che trovare la corretta classe Layoutparams – Roisgoen

+0

è vero @Roisgoen –

+0

Ciò che richiede un'attenzione particolare è che se si utilizza textView per getLayoutParams(), sarebbe meglio giudicare nulla? – BertKing