<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView1" android:layout_marginLeft="135dp" android:layout_toRightOf="@+id/textView1" android:src="@drawable/faciadecul" />Codice:
In arancio le istruzioni che definiscono la posizione relativamente a qualcos'altro sull'asse Y;
in rosa le istruzioni che misurano la posizione sull'asse Y.
in verdino le istruzioni che definiscono la posizione relativamente a qualcos'altro sull'asse X;
in ciano le istruzioni che misurano la posizione sull'asse X.
Così, questa ImageView è alignTop a textView1 ossia allineate al margine superiore di textView1.
Sull'asse X, invece, è posizionata
Immagine:
Provo a fare spostamenti: azzero la misura del margine sinistro:
<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView1" android:layout_marginLeft="0dp" android:layout_toRightOf="@+id/textView1" android:src="@drawable/faciadecul" />Ed ecco l'immagine:
In questo caso, avendo la ScrollView una proprietà android:layout_width="wrap_content" non occupa a destra tutta la superficie dell'activity.
Adesso la imposto a android:layout_width="match_parent"
Infatti:
Comunque lo scopo di eliminare la distanza fra ImageView e TextView è stato raggiunto riducendo a zero marginLeft di ImageView.
Ora invece di alignTop pongo la ImageView sull'asse Y relativamente a TextView con un alignBottom:
<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView1" android:layout_marginLeft="0dp" android:layout_toRightOf="@+id/textView1" android:src="@drawable/faciadecul" />
Ecco, questa non me l'aspettavo: alignBottom significa che il bottom di una view si allinea con il bottom di un'altra, mentre io mi aspettavo che fosse il top dell'ImageView ad allinearsi con il bottom della TextView.
E se provassi a usare, insieme all'alignTop/alignBottom, una proprietà che misura la distanza?
Proviamo a usare alignTop insieme a un marginTop...
<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView1" android:layout_marginTop="200dp" android:layout_marginLeft="0dp" android:layout_toRightOf="@+id/textView1" android:src="@drawable/faciadecul" />
Sì, funziona!
Nessun commento:
Posta un commento