Sto scrivendo un'applicazione drag and drop e sono davvero confuso a causa di alcuni parametri.I metodi getTop(), getLeft(), getX(), getY(), getLeft(), getHeight() della vista Android
Si prega di aiutare a capire.
Prima di tutto, ho letto la documentazione per la classe View
e ho ottenuto le seguenti spiegazioni.
getX() : The visual x position of this view, in pixels.
getY() : The visual y position of this view, in pixels.
getWidth() : Return the width of the your view.
getHeight() : Return the width of the your view.
getTop() : Top position of this view relative to its parent.
getLeft() : Left position of this view relative to its parent.
Ora, quando abbiamo finito con la documentazione ufficiale, vediamo cosa abbiamo.
Ho un'immagine con dimensione originale 500x500
chiamata cerchio.
Ed ecco lo screenshot effettivo della mia applicazione
Ecco l'XML per il layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:id="@+id/imageView1"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/circle" />
</LinearLayout>
Ora che cosa sono io preoccupati. Quando guardo la mia gente del posto, ottengo il seguente, che mi confonde davvero.
non vedo alcun problema con i getX()
e getY()
funzioni, perché in realtà mi indicano dove il soggetto inquadrato cominciare.
Come afferma di documentazione, i metodi e getWidth()
getHeight
restituiscono la larghezza e l'altezza della vista, ma la finestra di controllo mi dice che il mio getWidth()
e getHeight
sono 300, che davvero non riesco a capire, perché nella mia XML I' li ho impostati 100dp ciascuno, così le funzioni me li restituiscono in una misura diversa, e come posso convertirlo in dp.
E infine, mi dice che getTop()
e getLeft
sono 700 e 300 e, come dice la documentazione, sono la posizione dell'immagine relativa al suo genitore. Ma non è il mio genitore il layout lineare, quindi cosa significano questi numeri nel senso del posizionamento dello schermo?
così funziona anche getX() in px-s? – Carmine
@Carmine si, consultare la documentazione: http://developer.android.com/reference/android/view/View.html#getX() –