как установить изображение внутри framelayout

Я хочу установить изображение внутри FrameLayout, но оно перекрывает фон кадра.

прямо сейчас, как это выглядит


person PriyankaChauhan    schedule 27.09.2016    source источник
comment
Изменить порядок изображений в Framelayout. Вы размещаете изображение как последнее в FrameLayout. Сначала вы размещаете изображение и размещаете другие элементы.   -  person Naveen Kumar M    schedule 27.09.2016


Ответы (2)


Это пример, https://snag.gy/IrawbT.jpg

последний элемент, помещенный в стек, будет отображаться поверх элементов, находящихся под ним. Этот макет позволяет очень легко рисовать поверх других макетов, особенно для таких задач, как размещение кнопок.

Чтобы упорядочить дочерние элементы внутри FrameLayout, используйте атрибут android:layout_gravity вместе с любыми android:padding и android:margin, которые вам нужны.

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <!-- Child1 is drawn first -->
    <!-- Child2 is drawn over Child1 -->
    <!-- Child3 is drawn over Child1 and Child2 -->
    <TextView
        android:id="@+id/child1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:text="Child 3"
        android:textSize="25sp"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/child2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_margin="40dip"
        android:src="@color/childs"
        android:text="Child 2" />

    <ImageView
        android:id="@+id/child3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="Image"
        android:src="@color/_dark_gray" />
</FrameLayout >
person Amit Vaghela    schedule 27.09.2016
comment
XML неверный. в этой последовательности ребенок 3 идет первым в стеке (ниже всех), ребенок 2 идет вторым в стеке (выше ребенка 3) и, наконец, ребенок 1 идет последним в стеке (над каждым другим элементом) - person Ricardo; 27.09.2016
comment
хорошо, сэр. имена могут измениться. id действительно не имеет значения, как только он получит макет, который хотел. Спасибо за совет. - person Amit Vaghela; 27.09.2016
comment
Я упомянул об этом только из-за XML-описания того, как будут размещены дочерние элементы, которые не соответствуют коду (идентификаторы, которые вы им дали). Просто для лучшего понимания, вот и все - person Ricardo; 27.09.2016
comment
я обновил свой ответ. - person Amit Vaghela; 27.09.2016

это один из способов добиться желаемого

<FrameLayout>

    <ImageView>
    <- Your background image with width and height to match parent ->

    <ImageView>
    <-this is where you put your image->

</FrameLayout>
person Ricardo    schedule 27.09.2016
comment
Это неправильно, так как последний дочерний элемент всегда помещается сверху, однако вы упомянули свое фоновое изображение с шириной и высотой, чтобы соответствовать родителю. - person Atef Farouk; 01.06.2020