gpt4 book ai didi

Android View 的getTop()、getLeft()、getX()、getY()、getWidth()、getHeight()方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:02 34 4
gpt4 key购买 nike

我正在编写一个拖放应用程序,并且因为某些参数而感到非常困惑。

请大家帮忙解答

首先,我阅读了View 类的文档并得到了以下解释。

getX() :此 View 的视觉 x 位置,以像素为单位。

getY() :此 View 的视觉 y 位置,以像素为单位。

getWidth() :返回 View 的宽度。

getHeight() :返回 View 的宽度。

getTop() :此 View 相对于其父 View 的顶部位置。

getLeft() :此 View 相对于其父 View 的左侧位置。

现在我们完成了官方文档,让我们看看我们有什么。

我有一张原始尺寸为 500x500 的图片,名为 circle。

enter image description here

这是我的应用程序的实际屏幕截图

enter image description here

这是布局的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>

现在我关心的是什么。当我看本地人时,我得到以下信息,这让我很困惑。

enter image description here

我没有发现 getX()getY() 函数有任何问题,因为它们实际上告诉我图像从哪里开始。

如文档所述,getWidth()getHeight 方法返回 View 的宽度和高度,但监 window 口告诉我我的 getWidth( )getHeight 是 300,我真的无法理解,因为在我的 XML 中我将它们分别设置为 100dp,所以这些函数以不同的测量值返回给我,并且我如何将其转换为 dp。

最后,它告诉我 getTop()getLeft 是 700 和 300,正如文档所说,它们是图像相对于它的位置 parent 。但是我的 parent 不是线性布局,那么这些数字在屏幕定位方面意味着什么?

最佳答案

这是对 future 访问者的补充回答。

enter image description here

  • Left, Top:父 View 布局 subview 时,left是父 View 左侧到 subview 左侧的距离。同样,top 是父 View 顶部到 subview 顶部的距离。因此,getLeft()getTop() 返回 View 左上角相对于其父 View 的坐标(不是屏幕上的绝对坐标)。
  • X, Y: 通常 getX()getY() 会返回与 getLeft( )getTop()。然而,有时在布局完成后稍微移动 View 是很有用的。这可以通过 setTranslationX()setTranslationY() 来完成。如果已设置这些,则 xy 将不同于 lefttop,其中

    x = left + translationX
    y = top + translationY
  • 宽度、高度:您可以使用 getWidth()getHeight() 获取 View 的宽度和高度.这不受翻译的影响。

以上数值均为像素尺寸。

关于Android View 的getTop()、getLeft()、getX()、getY()、getWidth()、getHeight()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30202379/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com