我正在编写一个拖放应用程序,但由于一些参数而感到非常困惑。
请帮忙弄清楚。
首先,我阅读了 View
类的文档,并得到以下解释。
getX() : 此视图的可见 x 坐标(以像素为单位)。
getY() : 此视图的可见 y 坐标(以像素为单位)。
getWidth() : 返回视图的宽度。
getHeight() : 返回视图的高度。
getTop() : 相对于其父视图的顶部位置。
getLeft() : 相对于其父视图的左侧位置。
现在我们已经结束了官方文档,让我们看看我们有什么。
我有一个原始大小为 500x500
的图像叫做 circle。
这是我的应用程序的实际屏幕截图
这是布局的 XML。
<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>
我现在关心的是,当我查看我的本地文件时,我得到了以下内容,这真的让我感到困惑。
我的getX()
和getY()
函数并没有问题,因为它们实际上告诉我图像从哪里开始。根据文档,
getWidth()
和getHeight()
方法返回视图的宽度和高度,但是监视窗口告诉我我的getWidth()
和getHeight()
都是300,这真的让我无法理解,因为在我的XML中,我将它们设置为每个100dp。那么这些函数是否使用不同的度量单位返回它们,我该如何将其转换为dp?最后,它告诉我
getTop()
和getLeft()
分别为700和300,根据文档,它们是图像相对于其父级的位置。但是我的父级不是线性布局吗?那么这些数字在屏幕定位方面意味着什么?