Компоненты пользовательского интерфейса поверх фонового изображения

#android #xml

#Android #xml

Вопрос:

Мне хотелось добавить фоновое изображение в свое приложение, поэтому я добавил изображение в res/drawable него.

Изображение меньше размера экрана и не заполняет весь экран. Я разместил его в середине экрана.

Затем я хотел бы добавить кнопку под фоном.

Однако кнопка каким-то образом ограничена пределами фонового изображения, и я не могу переместить ее за пределы границ изображения.

мой файл .xml выглядит следующим образом:

 <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="420dp"
    android:layout_height="300dp"
    android:layout_gravity="center"
    android:background="@drawable/background_app2"
    tools:context=".MainActivity">

    <Button
        android:id="@ id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click To Continue"
        android:textSize="30dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.504"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

</android.support.constraint.ConstraintLayout>
 

и это выглядит так:

введите описание изображения здесь

Есть ли способ разместить кнопку где-нибудь в нижней части экрана, даже если размер изображения ограничен?

Комментарии:

1. измените <ConstraintLayout> ширину и высоту в соответствии с родительским

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

3. Поэтому используйте ImageView и центрируйте его на экране. И установите изображение в ImageView качестве фона вместо Layout

Ответ №1:

Попробуйте это:

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MyActivity">

    <ImageView
        android:id="@ id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        android:scaleType="centerCrop"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:srcCompat="@drawable/background_app2" />

    <Button
        android:id="@ id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:text="Click To Continue"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>