首页 > 解决方案 > 如何在我的 android 布局上堆叠多个图像视图?

问题描述

基本上,我对 android 开发相当陌生,我正在尝试制作一个 android 布局,它的中心有多个图像堆叠在彼此之上。每个图像必须能够独立于其他图像自行旋转(我已经实现了),理想情况下它们都将共享同一个中心。就目前而言,我有 4 个这样的图像(两个 ImageViews 和两个 ProgressBars),但只有列表中的前两个图像居中,其余图像分散在屏幕周围:

这就是它在预览中的样子,以及它应该是什么样子

这就是它在模拟器中的实际样子

这是这部分的 XML:

<RelativeLayout
    android:layout_width="760dp"
    android:layout_height="804dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.767">

    <ProgressBar
        android:id="@+id/progressBar"
        android:layout_width="559dp"
        android:layout_height="521dp"
        android:layout_gravity="center"
        android:indeterminateOnly="false"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:progressDrawable="@drawable/circlebar"
        tools:progress="60" />


    <ProgressBar
            android:id="@+id/imageView3"
            android:layout_width="445dp"
            android:layout_height="503dp"
            android:layout_gravity="center"
            android:indeterminateOnly="false"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:progressDrawable="@drawable/circleblue"
            tools:progress="80" />


    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="406dp"
        android:layout_height="454dp"
        android:layout_centerInParent="true"
        android:layout_gravity="center"
        android:scaleType="centerInside"
        android:src="@drawable/pointerbig1" />

    <ImageView
        android:id="@+id/arrow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center"
        android:scaleType="centerInside"
        android:src="@drawable/arrow" />


</RelativeLayout>

我已经尝试了我能想到的一切都无济于事。前两个元素似乎重叠得很好,但其余元素会分散,我不确定是什么原因造成的。我尝试以多种方式将它们居中,我尝试将其设为 FrameLayout,但没有什么可以解决它。请帮忙。

标签: androidxmllayout

解决方案


您可以使用ConstraintLayout并添加

    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"

到所有子视图。这样,它将使所有视图居中


推荐阅读