Come parte di un'app Android, sto creando un set di pulsanti. I pulsanti fanno parte di un insieme annidato di LinearLayouts. Usando il peso ho il set che si ridimensiona automaticamente in base alla dimensione del LinearLayout genitore che contiene. L'idea è, in base al numero di pixel e alla densità dello schermo, di impostare la dimensione del layout contenente su un numero di pixel; e il set di pulsanti si ridimensiona in base a tale modifica.Android: Come impostare la dimensione di un layout a livello di programmazione
La domanda è quindi: come ridimensionare il layout.
Ho provato diverse tecniche suggerite e nessuna si avvicina al lavoro. Qui è un sottoinsieme di XML che costruisce il pulsante SET:
<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>
Le due domande sono: 1) come ottengo l'accesso a numberPadLayout da Java. E una volta che ho accesso alla vista, 2) come cambio l'altezza e la larghezza del layout.
Qualsiasi suggerimento sarà apprezzato.
Grazie, era esattamente ciò di cui avevo bisogno. Mi sembra che sia andato storto nel presupposto che avrei dovuto applicare i parametri al layout per farlo funzionare. – codingCat
Combina questo con http://stackoverflow.com/a/8171014/9648 se è necessario modificare in base ai valori calcolati di altre viste. – JohnnyLambada
Non funziona. La larghezza del mio layout è 2000. Quando stampo 'layout.getWidth()', è ancora 2000 anche se inserisco 'params.width = 1000' –