2017-04-06 3 views
0

Ich möchte die Höhe eines dynamisch erstellten TextView auf 50dp. Ich habe versucht, eine dimens.xml Datei mit dem Code machenWie kann die Höhe eines dynamisch erstellten TextView in Android genau 50dp betragen?

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

Und dann verwende ich

int pixels = getResources().getDimensionPixelSize(R.dimen.imageview_height); 

und schließlich auf die erzeugte Textview ich einfach nutzen.

textView.setHeight(pixels); 

aber wenn ich laufe, meine app stürzt ab und sagt App-Name stoppen hält.

+2

poste dein Absturzprotokoll PLZ. –

+0

Es wird gut, wenn Sie Fehlerprotokoll buchen. – ViramP

Antwort

1

Sie können es mit diesem Satz:

textView.setLayoutParams(new LayoutParams(width, height)); 

Aber es gibt verschiedene LayoutParams vom Typ Layout abhängig. Verwenden Sie das Layout, das Ihrer Ansicht nach ist in Bsp.: Wenn Sie Ihre Ansicht in einem Linearlayout ist, verwenden LinearLayout.LayoutParams

Sehen Sie diesen Beitrag für weitere Informationen: Android set height and width of Custom view programmatically

-1

Sie tun können, es die folgende using

int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics()); 
+0

Da ich noch lerne, kann ich mich irren und vielleicht liege ich falsch. Es ist eine nette Geste, den Grund dafür zu nennen, dass andere lernen, den Grund des Downvotes zu kommentieren. –

+0

Ich nehme an, dass Ihre Antwort downvoted wurde, weil es nicht hilft, das Problem zu lösen. Das OP weiß, wie man dp berechnet, kämpft aber mit einer Ausnahme. Der richtige Ansatz wäre, nach einem Stacktrace zu fragen und dabei zu helfen, die Ausnahme aufzuspüren. – Zielony

-1

Berechnung von dps -> Pixel ......

final float scale = getContext().getResources().getDisplayMetrics().density; 
int pixels = (int) (dps * scale + 0.5f); 

Stellen Sie dann das Pixel für programmatische Verwendung ...

0

Android wirft Ausnahme, wenn entweder Höhe oder Breite nicht programmatisch

gesetzt
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) someLayout.getLayoutParams(); 
params.height = 130; 
someLayout.setLayoutParams(params); 

so durch den obigen Code, wir sind die Layout-params der Ansicht immer selbst und dann die Höhe programmgesteuert setzen

Verwandte Themen