Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android RelativeLayout change height programmatically

I try change layout height programmatically. I have two buttons. In one button I change my layout position and second button I try to receive save position witch I was first time.

<RelativeLayout     android:id="@+id/popaplayout"     android:layout_width="fill_parent"     android:layout_height="200dp" > 

This is a my layout and in first button I wrote

RelativeLayout.LayoutParams parms = new RelativeLayout.LayoutParams(                     RelativeLayout.LayoutParams.FILL_PARENT,                     RelativeLayout.LayoutParams.FILL_PARENT); parms.addRule(RelativeLayout.BELOW, R.id.movies_title_layout); scrollpopap.setLayoutParams(parms); scrollpopap.setScrollingEnabled(true); 

and second button

RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(                     ViewGroup.LayoutParams.WRAP_CONTENT, 300); rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); scrollpopap.setLayoutParams(rel_btn); scrollpopap.setScrollingEnabled(false); 

In xml file I wrote height 200dp and programmatically 300 and there are different height. How I can wrote save height in programmatically?

if anyone knows solution please help me thanks

like image 271
Beka Avatar asked Sep 26 '14 11:09

Beka


People also ask

How do I find the height and width of RelativeLayout in android programmatically?

private int width, height; RelativeLayout rlParent = (RelativeLayout) findViewById(R. id. rlParent); w = rlParent. getWidth(); h = rlParent.


2 Answers

First convert 200 dp into pixels -

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

Then set programatically,

RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(                     ViewGroup.LayoutParams.WRAP_CONTENT, pixels);             rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);             scrollpopap.setLayoutParams(rel_btn);             scrollpopap.setScrollingEnabled(false); 
like image 53
My God Avatar answered Sep 21 '22 09:09

My God


Convert DP to PX like this.

final float scale = getContext().getResources().getDisplayMetrics().density; int px = (int) (100 * scale + 0.5f);  // replace 100 with your dimensions 

Set Some layout_gravity of relative layout. and Change height and width by java code.

RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId); rl.getLayoutParams().height = px;   rl.getLayoutParams().width = px; 
like image 33
Ankit Kumar Avatar answered Sep 18 '22 09:09

Ankit Kumar