是否可以使两个布局共享一个ImageView?

时间:2018-01-31 13:46:52

标签: android android-layout

我是说如何在两种布局中找到ImageView?我有2个相对布局,一个是向上,一个是向下。上一个有一个ImageView但我希望这个ImageView的一半位于向下布局。我怎么能这样做?

EDIT ::

I want something like this

4 个答案:

答案 0 :(得分:1)

我同意@Booger回答,但如果您的父布局为RelativeLayout,请在ImageView添加以下属性。

android:layout_centerInParent="true"

或者您可以使用以下代码来创建这种布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/white"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/gray_font">

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/colorAccent">

        </LinearLayout>
    </LinearLayout>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        android:layout_centerInParent="true"/>

</RelativeLayout>

答案 1 :(得分:1)

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_container"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="@dimen/activity_horizontal_margin"
    android:background="#d2aff4">

    <Space
        android:id="@+id/center"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_centerInParent="true" />

    <RelativeLayout
        android:id="@+id/bottom"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/center"
        android:background="#87c96d" />

    <RelativeLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_centerInParent="true"
            android:src="@mipmap/ic_launcher" />
    </RelativeLayout>

</RelativeLayout>

在这种情况下,&#34; top&#34;最后需要创建布局以显示在其余视图的顶部。如果您需要它具有背景颜色,则需要将颜色应用于主容器。

结果如下:

enter image description here

答案 2 :(得分:0)

看看这个图书馆https://github.com/umano/AndroidSlidingUpPanel

如果你想要一些简单的东西你可以把这些布局放到父亲的相对布局中,然后你可以在父亲的相对布局中添加一个图像视图作为最后一个孩子,并根据你的需要定位

答案 3 :(得分:0)

我认为你应该将RelativeLayout包装在另一个Parent布局中,在那个布局中,你将放置你的ImageView(它将跨越其他布局。

像这样的伪代码:

<LinearLayout>
    <RelativeLayout1>
    <RelativeLayout2>
    <ImageView gravity=center> //Order counts, this needs to be after the RelativeLayouts to show on top of them
</LinearLayout>