Dans le cadre d'une application Android, je crée un ensemble de boutons. Les boutons font partie d'un ensemble imbriqué de LinearLayouts. En utilisant le poids, l'ensemble se redimensionne automatiquement en fonction de la taille du LinearLayout parent contenant. L'idée est, sur la base du nombre de pixels et de la densité de l'écran, de définir la taille de la mise en page contenant à un nombre de pixels; et faites redimensionner le jeu de boutons en fonction de ce changement.
La question est alors: comment redimensionner la mise en page.
J'ai essayé plusieurs techniques suggérées, et aucune n'est proche de fonctionner. Voici un sous-ensemble du XML qui construit le jeu de boutons:
<LinearLayout android:layout_height="104pt" android:id="@+id/numberPadLayout" android:orientation="horizontal" android:layout_width="104pt"
android:background="#a0a0a0"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
>
<LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_width="wrap_content">
<Button android:text="1" android:id="@+id/button1" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="4" android:id="@+id/button4" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="7" android:id="@+id/button7" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="-" android:id="@+id/buttonDash" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout2" android:orientation="vertical" android:layout_width="wrap_content">
<Button android:text="2" android:id="@+id/button2" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="5" android:id="@+id/button5" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="8" android:id="@+id/button8" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="0" android:id="@+id/button0" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout3" android:orientation="vertical" android:layout_width="wrap_content">
<Button android:text="3" android:id="@+id/button3" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="6" android:id="@+id/button6" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="9" android:id="@+id/button9" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="." android:id="@+id/buttonDot" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout4" android:orientation="vertical" android:layout_width="wrap_content">
<Button android:text="/" android:id="@+id/buttonBack" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="\" android:id="@+id/buttonEnter" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>
</LinearLayout>
Les deux questions sont: 1) comment puis-je accéder à numberPadLayout depuis Java. Et une fois que j'ai accès à la vue, 2) comment changer la hauteur et la largeur de la mise en page.
Toute suggestion sera appréciée.
la source
layout.getWidth()
params.width=1000
mon exemple de code
la source
requestLayout()
l'a fait pour moi!la source
Vous pouvez obtenir la hauteur réelle de la mise en page appelée avec ce code:
la source