Piszę aplikację typu "przeciągnij i upuść" i bardzo się pomyliłem z powodu pewnych parametrów.Metody getTop(), getLeft(), getX(), getY(), getWidth(), getHeight(), getY(),
Pomóż to wymyślić.
Przede wszystkim przeczytałem dokumentację klasy View
i otrzymałem następujące wyjaśnienia.
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.
Teraz, kiedy skończyliśmy z oficjalną dokumentacją, zobaczmy, co mamy.
Mam obraz o rozmiarze oryginalnym 500x500
nazywany okręgiem.
A oto rzeczywisty zrzut ekranu z mojego wniosku
Oto xml dla układu
<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>
co teraz jestem zaniepokojony. Kiedy oglądam swoich mieszkańców, otrzymuję następujące informacje, które naprawdę mnie mylą.
nie widzę żadnego problemu z funkcjami getX()
i getY()
, bo rzeczywiście pokazać mi, gdzie jest obraz zacząć.
Jak stwierdza dokumentacji, metody getWidth()
i getHeight
zwróci szerokość i wysokość widoku ale okno zegarek mówi mi, że mój getWidth()
i getHeight
300, które naprawdę nie mogę zrozumieć, bo w moim XML I” ve ustawić je po 100pb, więc funkcje zwracają mi je w innym pomiarze, i jak mogę przekonwertować to na dp.
I na koniec, mówi mi, że getTop()
i getLeft
to 700 i 300, a jak mówi dokumentacja, są one pozycją obrazu względem jego rodzica. Ale czy mój rodzic nie jest układem liniowym, więc co oznaczają te cyfry w sensie pozycjonowania ekranu?
czy getX() działa również w px-s? – Carmine
@ Karminowy tak, zobacz dokumentację: http://developer.android.com/reference/android/view/View.html#getX() –