如何使用两个ImageView作为移动背景

时间:2018-10-18 21:15:05

标签: java android xml android-studio android-layout

抱歉,这是一个愚蠢的问题,但是我是Android设计和Android Studio的新手。

我正在尝试使背景图像与主要内容无限地滚动。为此,我创建了一个640x960 png png图像,并将其两个ImageViews放置在垂直的LinearLayout中。
因此,我的想法是检测主要内容滚动并将其转换为背景LinearLayout。第一个ImageView会填满整个屏幕,然后当我们开始滚动时,ImageView会离开屏幕,然后在第二个ImageView下方显示。当第二个填充整个屏幕时,我使LinearLayout再次跳到第一个ImageView,依此类推。
Graphic of the layout

第一个ImageView可以按预期显示,但是由于某些原因第二个ImageView的高度为0dp
这是布局:

<LinearLayout
    android:id="@+id/linearlayout_bgimg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageview1_bgimg"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/img_background" />

    <ImageView
        android:id="@+id/imageview2_bgimg"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/img_background" />

</LinearLayout>

<!-- This is where the main content goes, for now it is just space. -->
<android.support.v4.widget.NestedScrollView
    android:id="@+id/nestedscrollview_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout
        android:id="@+id/linearlayout_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <Space
            android:layout_width="match_parent"
            android:layout_height="2000dp" />
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

是因为第二个ImageView在屏幕外启动吗?我该如何解决?如果您提出另一种实现滚动背景效果的方法,我也欢迎。

编辑:我在LinearLayout和ImageViews之间添加了一个GridLayout,现在第二个ImageView具有适当的高度,但是它没有显示,好像它再次具有0dp的高度...

编辑:

解决方案

我使用了FrameLayout并将ImageViews放入其中,因此这两个图像是在屏幕上同时创建的。然后,我没有翻译FrameLayout,而是分别翻译了ImageView。

0 个答案:

没有答案