web-dev-qa-db-fra.com

android RelativeLayout change la hauteur par programme

J'essaie de modifier la hauteur de la mise en page par programme. J'ai deux boutons. Dans un bouton, je change ma position de mise en page et le deuxième bouton, j'essaie de recevoir la position de sauvegarde que j'étais la première fois.

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

Ceci est ma mise en page et dans le premier bouton, j'ai écrit

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);

et deuxième bouton

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);

Dans le fichier xml j'ai écrit la hauteur 200dp et 300 par programme et il y a une hauteur différente. Comment puis-je écrire enregistrer la hauteur par programme?

si quelqu'un connaît la solution s'il vous plaît aidez-moi merci

22
Beka

Convertissez d'abord 200 dp en pixels -

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

Ensuite, définissez par programme,

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);
42
My God

Convertissez DP en PX comme ceci.

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

Définissez une certaine disposition_gravité de la disposition relative. et Modifiez la hauteur et la largeur par Java code.

RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId);
rl.getLayoutParams().height = px;  
rl.getLayoutParams().width = px;
26
Ankit Kumar

Si vous avez l'intention de changer la hauteur de RelativeLayout, alors cette aide.

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId);
relativeLayout.getLayoutParams().height = 100;
relativeLayout.getLayoutParams().width = 100;
4
shaiban

tilisez ceci

RelativeLayout layout = (RelativeLayout) findViewById(R.id.yourlayout_id);
// Gets the layout params that will allow you to resize the layout
LayoutParams params = layout.getLayoutParams();
params.height = 320;
params.width = 320;
3
Ramesh Devaiya