我想放置一个映像视图重叠另一个imageview,左和顶角从第一个ImageView的中心开始

发布于 2025-01-17 08:33:33 字数 309 浏览 1 评论 0原文

我想定位一个图像视图(蓝色),其左上角从第二个ImageView(红色)开始。最好在约束层中。第一个红色图像视图破坏了尺寸,因为它将被拉伸以填充屏幕的一部分。挑战是找到第一个红色imageView的中心。我尝试使用指南,障碍,但他们都期望顶/底/右/右参考。如何使用XML布局完成?

Overlapping ImageViews

I would like to position an ImageView (Blue) with its upper left corner starting in center of a second ImageView (Red). Preferably within a ConstraintLayout. The first red ImageView has undermined size since it will be stretched to fill a percentage of the screen. The challenge is locating the center of the first red ImageView. I tried using Guidelines, Barriers but they all expect top/bottom/left/right references. How can this be done using XML layouts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜味超标? 2025-01-24 08:33:33

gone 视图的宽度和高度为零,但可以位于红色矩形的中心。然后,可以通过将蓝色矩形的顶部和左侧约束到中心小部件来将其顶部/左侧放置在该中心点。

<androidx.constraintlayout.widget.ConstraintLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:id="@+id/view1"
        android:layout_width="300dp"
        android:layout_height="400dp"
        android:background="@android:color/holo_red_light"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:id="@+id/view2"
        android:layout_width="200dp"
        android:layout_height="300dp"
        android:background="@android:color/holo_blue_light"
        app:layout_constraintStart_toStartOf="@id/centerPoint"
        app:layout_constraintTop_toTopOf="@id/centerPoint" />

    <Space
        android:id="@+id/centerPoint"
        android:layout_width="1dp"
        android:layout_height="1dp"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@id/view1"
        app:layout_constraintEnd_toEndOf="@+id/view1"
        app:layout_constraintStart_toStartOf="@id/view1"
        app:layout_constraintTop_toTopOf="@id/view1" />

</androidx.constraintlayout.widget.ConstraintLayout>

输入图片此处的描述

通过更改中心小部件的垂直和水平偏差,可以将位置放置在红色矩形内的任何位置。

A gone view will have zero width and zero height but can be positioned at the center of the red rectangle. The top/left of the blue rectangle can then be placed at this center point by constraining its top and left to the center widget.

<androidx.constraintlayout.widget.ConstraintLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:id="@+id/view1"
        android:layout_width="300dp"
        android:layout_height="400dp"
        android:background="@android:color/holo_red_light"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:id="@+id/view2"
        android:layout_width="200dp"
        android:layout_height="300dp"
        android:background="@android:color/holo_blue_light"
        app:layout_constraintStart_toStartOf="@id/centerPoint"
        app:layout_constraintTop_toTopOf="@id/centerPoint" />

    <Space
        android:id="@+id/centerPoint"
        android:layout_width="1dp"
        android:layout_height="1dp"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@id/view1"
        app:layout_constraintEnd_toEndOf="@+id/view1"
        app:layout_constraintStart_toStartOf="@id/view1"
        app:layout_constraintTop_toTopOf="@id/view1" />

</androidx.constraintlayout.widget.ConstraintLayout>

enter image description here

The placement can be made anywhere within the red rectangle by changing the vertical and horizontal bias of the center widget.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文