Visualizzazione stampabile
-
Dimensioni relative
Ciao a tutti :)
Sapete se è possibile assegnare ad un elemento delle dimensioni relative, cioè proporzionali alla dimensione del display?
Mi servirebbe una cosa del tipo: "fill_parent/2" che a quanto pare non è lecita..
Vorrei poter fare questa operazione da xml, perchè via java potrei fare una cosa di questo tipo
-
Potresti utilizzare al posto dei
pixel i dp o dip che si adattano se cosi possiamo dire allay densita dello schermo su cui la tua applicazione viene fatta girare
Dimenticavo puoi settarli direttamente da xml
Sent from my HTC Magic using Tapatalk
-
Si, per ora ho utilizzato questi...
Però così non posso fare in modo che un Button ad esempio prenda mezzo schermo... o sbaglio?
-
Perche no basta regolare l altezza e la lunghezza del button a tuo piacimento
Sent from my HTC Magic using Tapatalk
-
Intendevo dire che il button dev'essere grande quanto mezzo schermo, indipendentemente dal terminale che esegue l'applicazione (htc wildfire o galaxy tab)
Da quello che ho capito questo si può fare a runtime perchè tramite un metodo mi faccio restituire la dimensione del display e su quella opero, però mi chiedevo se si potesse fare qualcosa del genere direttamente da xml
-
Se tu utilizzi i dp accade proprio
Questo almeno io ho sempre saputo cosi prova
Sent from my HTC Magic using Tapatalk
-
Se lavori in percentuali puoi farlo eccome! 50% è metà schermo...
Devi usare l'attributo layout:weight!
-
Non ho capito bene...
in questo caso dove dovrei metterlo se voglio che il pulsante riempa mezzo schermo?
codice:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/linearLayout">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fade" android:id="@+id/fadeButton"></Button>
<Button android:id="@+id/resetButton" android:layout_height="wrap_content" android:text="reset" android:layout_width="wrap_content"></Button>
</LinearLayout>
Inoltre il discorso non cambia nel caso di POSIZIONI relative
-
dovresti metterlo all'interno del tag button cmq ti posto la guida ufficiale di android developers che tratta questo argomento qui troverai tutte le tue risposte
Supporting Multiple Screens | Android Developers
-
Così:
codice:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/linearLayout"
android:weightSum="100">
<Button android:id="@+id/fadeButton"
android:text="Fade"
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="50"
></Button>
<Button android:id="@+id/resetButton"
android:text="reset"
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="50"
></Button>
</LinearLayout>
In rosso le aggiunte e/o modifiche.
- weightSum nella view padre indica qual'è il "peso" totale
- sulle view figlie, layout_width è obbligatorio, ma non può essere ne wrap_content, ne fill_parent, va messo a 0
- infine layout_weight sulle view figlie indica al posto di layout_width quanto spazio occupa rispetto al peso totale la view
Quindi se nel padre metti 100, puoi avere 2 figli (50 e 50) per avere lo spazio suddiviso equamente.
La weightSum può essere qualsiasi numero, anche 3333, l'importante è che poi la somma dei figli sia uguale a quel numero!
Giocando un po' con questi attributi, quando si hanno parecchie view si riescono a fare parecchie cose carine altrimenti impossibili ;)