在 Android Studio 中,图像位置在运行时重置为零

Image position resets to zero at runtime in Android Studio

我在预览中设置了一些图像按钮,在 xml 文件中设置了它们的位置,但是当我 运行 程序时,所有图像都移动到 (0,0)。

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="126dp"
    android:layout_height="117dp"
    android:background="@null"
    app:srcCompat="@drawable/sad"
    tools:layout_editor_absoluteY="82dp"
    tools:layout_editor_absoluteX="200dp" />

IDE提示我:

布局编辑器允许您将小部件放置在 canvas 上的任何位置,并使用设计时属性(例如 layout_editor_absoluteX)记录当前位置。这些属性不适用于 [=24] =]time,因此如果您将布局推送到设备上,小部件可能会出现在与编辑器中显示的位置不同的位置。要解决此问题,请通过从边缘连接拖动来确保小部件具有水平和垂直约束。

如何在 运行 时间设置图像的值?

您可以使用 FrameLayout 或 RelativeLayout 并设置左边距和上边距来放置视图。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageButton
        android:id="@+id/imageButton3"
        android:layout_width="126dp"
        android:layout_height="117dp"
        android:background="@null"
        app:srcCompat="@drawable/sad"
        android:layout_marginLeft="82dp"
        android:layout_marginTop="200dp" />

</FrameLayout>