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 ;)
-
Grazie mille... funziona!! :)
Invece come faccio a definire la posizione, magari relativa, delle varie view?
Poi avrei il seguente dubbio sui drawable (se non è una cosa immediata apro un altro post):
tramite il metodo setBackgroundDrawable(drawable d) posso assegnare più di un drawable ad una view?
Nello specifico ho definito un "rotateDrawable" per controllare la rotazione e uno "scaleDrawable" per il ridimensionamento, e vorrei poterli gestire tramite due Button (rotate, scale)
Scusate se faccio molte domande, ma nel libro non spiega molte cose (almeno per ora) e con la documentazione non sempre riesco ad arrivare alla soluzione :-X
-
Toglimi pero una curiosita con i soli dp non eri riuscito a risolvere? Al cambiare delle dimensioni non cambiava anche la dimensione del button? Fammi sapere
Sent from my HTC Magic using Tapatalk
-
Quote:
Originariamente inviato da
Supergiox
Grazie mille... funziona!! :)
Invece come faccio a definire la posizione, magari relativa, delle varie view?
Poi avrei il seguente dubbio sui drawable (se non è una cosa immediata apro un altro post):
tramite il metodo setBackgroundDrawable(drawable d) posso assegnare più di un drawable ad una view?
Nello specifico ho definito un "rotateDrawable" per controllare la rotazione e uno "scaleDrawable" per il ridimensionamento, e vorrei poterli gestire tramite due Button (rotate, scale)
Scusate se faccio molte domande, ma nel libro non spiega molte cose (almeno per ora) e con la documentazione non sempre riesco ad arrivare alla soluzione :-X
Per la posizione relativa delle view esiste apposta il RelativeLayout!
Per l'altra domanda mi sa che è meglio che apri un'altra discussione.
-
Quote:
Originariamente inviato da
blaster
Toglimi pero una curiosita con i soli dp non eri riuscito a risolvere? Al cambiare delle dimensioni non cambiava anche la dimensione del button? Fammi sapere
Sent from my HTC Magic using Tapatalk
Ho fatto una prova e ho avuto subito un problema, cioè che non so dire con precisione a quanti dp corrisponde mezzo schermo... ho provato a occhio e cambiando AVD non sono state rispettate le proporzioni...
A questo punto non ho ben capito che vantaggi si hanno usando i dp invece dei px
-
Probabilmente conoscete già DroidDraw...
é un comodissimo tool che permette di disegnare l'interfaccia grafica del programma dal browser, anche se io ho preferito la versione standalone (disponibile per linux, mac os, windows).
Mi sembra molto utile anche solo a livello didattico, per capire come realizzare qualcosa con xml (ho appena scoperto AbsoluteLayout :p)
-
Quote:
Originariamente inviato da
Supergiox
Probabilmente conoscete già
DroidDraw...
é un comodissimo tool che permette di disegnare l'interfaccia grafica del programma dal browser, anche se io ho preferito la versione standalone (disponibile per linux, mac os, windows).
Mi sembra molto utile anche solo a livello didattico, per capire come realizzare qualcosa con xml
(ho appena scoperto AbsoluteLayout :p)
Hai appena scoperto il MALE :O
...roftl
Usare posizioni assolute è sconsigliatissimo! Cerca di non usare l'AbsoluteLayout se puoi!
-
Ahaha ok! :D
E poi ho aperto questo post per imparare a usare quelle relative :p