Создание прозрачного фона линейного макета

#android #android-layout

#Android #android-layout

Вопрос:

Как я могу сделать фон линейного макета прозрачным?

Изображение моего приложения

Я хочу сделать область вокруг кнопки «Поделиться» прозрачной. Я пробовал различные решения, такие как

 android:background="@android:color/transparent"
  

и

 android:alpha="0"
  

и многие другие решения, но ни одно из них, похоже, не работает.
Как я могу сделать эту область прозрачной для изображения и других элементов?
Я также пробовал макет фрейма, но он также не работает.

Вот мой XML-код:

 <?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"
    android:theme="@style/Theme.MaterialComponents"
    tools:context=".ReadMoreActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingBottom="100dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <ImageView
                    android:id="@ id/readMoreImage"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:scaleType="fitCenter" />

                <TextView
                    android:id="@ id/readMoreTitle"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Card Title"
                    android:textAlignment="center"
                    android:textColor="#000000"
                    android:textSize="30dp" />


                <TextView
                    android:id="@ id/readMoreDesc"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:paddingBottom="20dp"
                    android:text="Card description"
                    android:textAlignment="textStart"
                    android:textColor="#000000" />

            </LinearLayout>

        </ScrollView>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="100dp"
            android:layout_gravity="center"
            android:layout_marginTop="-100dp"
            android:orientation="horizontal">

            <com.google.android.material.button.MaterialButton
                android:id="@ id/shareButton"
                style="@style/Widget.MaterialComponents.Button.OutlinedButton"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:paddingLeft="50dp"
                android:paddingRight="50dp"
                android:text="Share"
                android:textColor="#ffff"
                android:textSize="25dp"
                app:backgroundTint="#9C27B0"
                app:strokeColor="#9C27B0"
                app:strokeWidth="2dp" />

        </LinearLayout>

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
  

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

1. Вы хотите, чтобы человек-паук был фоном на весь экран и кнопкой внизу, которая будет отображаться на прозрачном линейном изображении?

2. Я просто хочу, чтобы вся белая область вокруг кнопки «Поделиться» была прозрачной.

3. Я думаю, что вы вставили незавершенный код. Когда я вставляю этот код в AS и устанавливаю фон для корневого контейнера, линейный макет становится прозрачным. Я думаю, что сложно воссоздать макет изображения с помощью кода. Вы хотите, чтобы ваш окончательный макет выглядел так ?

4. @iknow На самом деле это похоже на сообщение в блоге, сначала есть изображение, затем заголовок, затем описание, все извлеченное из firebase. Все это в режиме прокрутки, и я хочу, чтобы статическая кнопка в конце экрана была там, и мы могли прокручивать остальную часть экрана. Для этого я использовал макет внутри макета, но, как вы можете видеть, эта белая область вокруг кнопки «Поделиться» все портит, пожалуйста, помогите мне.

5. Я добавил ответ, проверьте его и дайте мне знать, если это то, что вы хотели сделать. Если да, не стесняйтесь принять и поддержать: D

Ответ №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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:theme="@style/Theme.MaterialComponents"
    >


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_launcher_background"
                />

            <TextView
                android:id="@ id/readMoreTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Card Title"
                android:textAlignment="center"
                android:textColor="#000000"
                android:textSize="30sp"
                />

            <TextView
                android:id="@ id/readMoreDesc"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:text="@string/long_card_desc"
                android:textAlignment="textStart"
                android:textColor="#000000"
                >

            </TextView>

        </LinearLayout>

    </ScrollView>

    <com.google.android.material.button.MaterialButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:backgroundTint="#880E4F"
        android:text="Share"
        android:textColor="#FFF9C4"
        app:cornerRadius="15dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:strokeColor="#006064"
        app:strokeWidth="1dp" />

</androidx.constraintlayout.widget.ConstraintLayout>
  

Теперь кнопка прилипает к нижней части экрана, и вы можете прокручивать содержимое.
Результат (слева вид с прокруткой, а справа начальный вид):

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

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

1. спасибо, ты спас меня, брат / сестра!!! и еще одно приложение: cornerRadius = «xdp» не работает в вашем решении, как я могу это отредактировать.

2. К какому виду вы хотите применить cornerRadius ?

3. Я отредактировал свой ответ, теперь вы можете применить радиус к кнопке. Вы не могли сделать это раньше, потому что вы установили background атрибут, и я просто скопировал вашу кнопку.

4. спасибо за решение. Знаете ли вы, как улучшить эти концепции проектирования?

5. Добро пожаловать. Трудно сказать, я тоже новичок в Material Design, но вы можете проверить здесь .